Симферопольский Форум: PHP-программеры нужна помощь! - Симферопольский Форум

Перейти к содержимому

Внимание! Для всех новых пользователей введена премодерация сообщений и тем.
  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

PHP-программеры нужна помощь!

#1 Пользователь офлайн   Sirius 

  • A1
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 4 444
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь
  • Страна:  

Отправлено 03 Апрель 2014 - 13:11

Судя по всему (но не факт!), вот этот код содержит багу, из-за которой после редактирования сообщения на нашем форуме к смайликам добавляется сочетание "/>".

Я буду, конечно, сам пытаться вкурить, что здесь не так, но может, коллективный разум быстрее подскажет, где зарылась собака.

public static function unconvertSmilies( $txt )
        {
                //-----------------------------------------
                // Unconvert smilies
                //-----------------------------------------

                $txt = str_replace( "<#EMO_DIR#>", "&lt;#EMO_DIR&gt;", $txt );

                preg_match_all( "#(<img(?:[^>]+?)class=['\"]bbc_emoticon[\"'](?:[^>]+?)alt=['\"](.+?)[\"'](?:[^>]+?))#is", $txt, $matches );

                if( is_array($matches[1]) AND count($matches[1]) )
                {
                        foreach( $matches[1] as $index => $value )
                        {                               
                                if ( count( ipsRegistry::cache()->getCache('emoticons') ) > 0 )
                                {
                                        foreach( ipsRegistry::cache()->getCache('emoticons') as $row )
                                        {
                                                $_emoCode = str_replace( '<', '&lt;', str_replace( '>', '&gt;', $row['typed'] ) );
                                                
                                                if( $matches[2][ $index ] == $_emoCode )
                                                {
                                                        /* We need to make sure emoticons are wrapped in spaces so they are parsed properly */
                                                        //$txt = str_replace( $value, ' ' . $_emoCode . ' ', $txt );
                                                        /* We are no longer matching opening/closing "space" so no need to add it */
                                                        $txt = str_replace( $value, $_emoCode, $txt );
                                                        continue 2;
                                                }
                                        }
                                }
                        }
                }

                $txt = str_replace( "&lt;#EMO_DIR&gt;", "<#EMO_DIR#>", $txt );
                
                return $txt;
        }


#2 Пользователь офлайн   Sirius 

  • A1
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 4 444
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь
  • Страна:  

Отправлено 03 Апрель 2014 - 13:22

Еще, как вариант, проблема может быть в следующем коде:

/**
	 * This function processes the text before showing for editing, etc
	 * Used for rebuilding after upgrade to 3.0
	 *
	 * @access	public
	 * @param	string		Raw text
	 * @return	string		Converted text
	 */
	public function preEditParse( $txt="" )
	{
		//-----------------------------------------
		// Before we start, strip newlines or we'll
		// end up duplicating them
		//-----------------------------------------
		
		$txt	= str_replace( "\n", "", $txt );
		$txt	= str_replace( "\r", "", $txt );
		
		//-----------------------------------------
		// Clean up BR tags
		//-----------------------------------------
		
		if ( !$this->parse_html OR $this->parse_nl2br )
		{
			$txt = str_replace( "<br>"  , "\n", $txt );
			$txt = str_replace( "<br .", "\n", $txt );
		}
		
		# Make EMO_DIR safe so the ^> regex works
		$txt = str_replace( "<#EMO_DIR#>", "&lt;#EMO_DIR&gt;", $txt );
		
		# New emo
		$txt = preg_replace( "#(\s)?<([^>]+?)emoid=\"(.+?)\"([^>]*?)".">(\s)?#is", "\\1\\3\\5", $txt );
		
		# And convert it back again...
		$txt = str_replace( "&lt;#EMO_DIR&gt;", "<#EMO_DIR#>", $txt );
		
		# Legacy
		$txt = preg_replace( "#<!--emo&(.+?)-->.+?<!--endemo-->#", "\\1" , $txt );
		
		# New (3.0)
		$txt = $this->unconvertSmilies( $txt );
		
		//-----------------------------------------
		// Clean up nbsp
		//-----------------------------------------
		
		$txt = str_replace( '&nbsp;&nbsp;&nbsp;&nbsp;', "\t", $txt );
		$txt = str_replace( '&nbsp;&nbsp;'            , "  ", $txt );

		if ( $this->parse_bbcode )
		{
			//-----------------------------------------
			// Custom bbcode...
			//-----------------------------------------
			
			$txt = preg_replace( "#<acronym title=[\"'](.+?)['\"]>(.+?)</acronym>#is", "[acronym=\"\\1\"]\\2[/acronym]", $txt );
			$txt = preg_replace( "#<a href=[\"']index\.php\?automodule=blog(&|&amp;)showentry=(.+?)['\"]>(.+?)</a>#is", "[entry=\"\\2\"]\\3[/entry]", $txt );
			$txt = preg_replace( "#<a href=[\"']index\.php\?automodule=blog(&|&amp;)blogid=(.+?)['\"]>(.+?)</a>#is", "[blog=\"\\2\"]\\3[/blog]", $txt );
			$txt = preg_replace( "#<a href=[\"']index\.php\?act=findpost(&|&amp;)pid=(.+?)['\"]>(.+?)</a>#is", "[post=\"\\2\"]\\3[/post]", $txt );
			$txt = preg_replace( "#<a href=[\"']index\.php\?showtopic=(.+?)['\"]>(.+?)</a>#is", "[topic=\"\\1\"]\\2[/topic]", $txt );
			$txt = preg_replace( "#<a href=[\"'](.*?)index\.php\?act=findpost(&|&amp;)pid=(.+?)['\"]><\{POST_SNAPBACK\}></a>#is", "[snapback]\\3[/snapback]", $txt );
			$txt = preg_replace( "#<div class=[\"']codetop['\"]>(.+?)</div><div class=[\"']codemain['\"] style=[\"']height:200px;white\-space:pre;overflow:auto['\"]>(.+?)</div>#is", "[codebox]\\2[/codebox]", $txt );
			$txt = preg_replace( "#<!--blog\.extract\.start-->(.+?)<!--blog\.extract\.end-->#is", "[extract]\\1[/extract]", $txt );
			$txt = preg_replace( "#<span style=[\"']color:\#000000;background:\#000000['\"]>(.+?)</span>#is", "[spoiler]\\1[/spoiler]", $txt );
			
			//-----------------------------------------
			// SQL
			//-----------------------------------------
			
			$txt = preg_replace_callback( "#<!--sql-->(.+?)<!--sql1-->(.+?)<!--sql2-->(.+?)<!--sql3-->#is", array( &$this, 'unconvert_sql'), $txt );
			
			//-----------------------------------------
			// HTML
			//-----------------------------------------
			
			$txt = preg_replace_callback( "#<!--html-->(.+?)<!--html1-->(.+?)<!--html2-->(.+?)<!--html3-->#is", array( &$this, 'unconvert_htm'), $txt );
			
			//-----------------------------------------
			// Images / Flash
			//-----------------------------------------
		
			$txt = preg_replace_callback( "#<!--Flash (.+?)-->.+?<!--End Flash-->#", array( &$this, 'unconvert_flash'), $txt );
			$txt = preg_replace( "#<img(?:.+?)src=[\"'](\S+?)['\"][^>]+?>#is"           , "\[img\]\\1\[/img\]"            , $txt );
		
			//-----------------------------------------
			// Email, URLs
			//-----------------------------------------
			
			$txt = preg_replace( "#<a href=[\"']mailto:(.+?)['\"]>(.+?)</a>#s"                                   , "\[email=\\1\]\\2\[/email\]"   , $txt );
			$txt = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].*?".">(.+?)</a>#s" , "\[url=\"\\1\\2\"\]\\3\[/url\]"  , $txt );

			//-----------------------------------------
			// Quote
			//-----------------------------------------
			
			$txt = preg_replace( "#<!--QuoteBegin-->(.+?)<!--QuoteEBegin-->#"                        , '[quote]'         , $txt );
			$txt = preg_replace( "#<!--QuoteBegin-{1,2}([^>]+?)\+([^>]+?)-->(.+?)<!--QuoteEBegin-->#", "[quote name='\\1' date='\\2']" , $txt );
			$txt = preg_replace( "#<!--QuoteBegin-{1,2}([^>]+?)\+-->(.+?)<!--QuoteEBegin-->#"        , "[quote name='\\1']"     , $txt );
			$txt = preg_replace( "#<!--QuoteEnd-->(.+?)<!--QuoteEEnd-->#"                            , '[/quote]'        , $txt );
			
			//-----------------------------------------
			// Super old quotes
			//-----------------------------------------
			
			$txt = preg_replace( "#\[quote=(.+?),(.+?)\]#i"											 , "[quote name='\\1' date='\\2']", $txt );
			
			//-----------------------------------------
			// URL Inside Quote
			//-----------------------------------------

			$txt = preg_replace( "#\[quote=(.*?)\[url(.*?)\](.+?)\[\/url\]\]#i", "[quote=\\1\\3]", str_replace( "\\", "", $txt ) );
			
			//-----------------------------------------
			// New quote
			//-----------------------------------------
			
			$txt = preg_replace_callback( "#<!--quoteo([^>]+?)?-->(.+?)<!--quotec-->#si", array( &$this, '_parse_new_quote'), $txt );
			
			//-----------------------------------------
			// Ident => Block quote
			//-----------------------------------------
			
			while( preg_match( "#<blockquote>(.+?)</blockquote>#is" , $txt ) )
			{
				$txt = preg_replace( "#<blockquote>(.+?)</blockquote>#is"  , "[indent]\\1[/indent]", $txt );
			}
			
			//-----------------------------------------
			// CODE
			//-----------------------------------------
			
			$txt = preg_replace( "#<!--c1-->(.+?)<!--ec1-->#", '[code]' , $txt );
			$txt = preg_replace( "#<!--c2-->(.+?)<!--ec2-->#", '[/code]', $txt );
			
			//-----------------------------------------
			// left, right, center
			//-----------------------------------------

			$txt = preg_replace( "#<div align=[\"'](left|right|center)['\"]>(.+?)</div>#is"  , "[\\1]\\2[/\\1]", $txt );
			
			//-----------------------------------------
			// Start off with the easy stuff
			//-----------------------------------------
			
			$txt = $this->parse_simple_tag_recursively( 'b'     , 'b'  , 0, $txt );
			$txt = $this->parse_simple_tag_recursively( 'i'     , 'i'  , 0, $txt );
			$txt = $this->parse_simple_tag_recursively( 'u'     , 'u'  , 0, $txt );
			$txt = $this->parse_simple_tag_recursively( 'strike', 's'  , 0, $txt );
			$txt = $this->parse_simple_tag_recursively( 'sub'   , 'sub', 0, $txt );
			$txt = $this->parse_simple_tag_recursively( 'sup'   , 'sup', 0, $txt );
			
			//-----------------------------------------
			// List headache
			//-----------------------------------------
			
			$txt = preg_replace( "#(\n){0,1}<ul>#" , "\\1\[list\]"  , $txt );
			$txt = preg_replace( "#(\n){0,1}<ol>#" , "\\1\[list=1\]"  , $txt );
			$txt = preg_replace( "#(\n){0,1}<ol type=[\"'](a|A|i|I|1)[\"']>#" , "\\1\[list=\\2\]\n"  , $txt );
			$txt = preg_replace( "#(\n){0,1}<li>#" , "\n\[*\]"     , $txt );
			$txt = preg_replace( "#(\n){0,1}</ul>(\n){0,1}#", "\n\[/list\]\\2" , $txt );
			$txt = preg_replace( "#(\n){0,1}</ol>(\n){0,1}#", "\n\[/list\]\\2" , $txt );
			
			//-----------------------------------------
			// Opening style attributes
			//-----------------------------------------
			
			$txt = preg_replace( "#<!--sizeo:(.+?)-->(.+?)<!--/sizeo-->#"               , "[size=\\1]" , $txt );
			$txt = preg_replace( "#<!--coloro:(.+?)-->(.+?)<!--/coloro-->#"             , "[color=\"\\1\"]", $txt );
			$txt = preg_replace( "#<!--fonto:(.+?)-->(.+?)<!--/fonto-->#"               , "[font=\"\\1\"]" , $txt );
			$txt = preg_replace( "#<!--backgroundo:(.+?)-->(.+?)<!--/backgroundo-->#"   , "[background=\\1]" , $txt );
			
			//-----------------------------------------
			// Closing style attributes
			//-----------------------------------------
			
			$txt = preg_replace( "#<!--sizec-->(.+?)<!--/sizec-->#"            , "[/size]" , $txt );
			$txt = preg_replace( "#<!--colorc-->(.+?)<!--/colorc-->#"          , "[/color]", $txt );
			$txt = preg_replace( "#<!--fontc-->(.+?)<!--/fontc-->#"            , "[/font]" , $txt );
			$txt = preg_replace( "#<!--backgroundc-->(.+?)<!--/backgroundc-->#", "[/background]" , $txt );
			
			//-----------------------------------------
			// LEGACY SPAN TAGS
			//-----------------------------------------
			
			//-----------------------------------------
			// WYSI-Weirdness #9923464: Opera span tags
			//-----------------------------------------
					
			while ( preg_match( "#<span style='font-family: \"(.+?)\"'>(.+?)</span>#is", $txt ) )
			{
				$txt = preg_replace( "#<span style='font-family: \"(.+?)\"'>(.+?)</span>#is", "\[font=\\1\]\\2\[/font\]", $txt );
			}

			while ( preg_match( "#<span style=['\"]font-size:?(.+?)pt;?\s+?line-height:?\s+?100%['\"]>(.+?)</span>#is", $txt ) )
			{
				$txt = preg_replace_callback( "#<span style=['\"]font-size:?(.+?)pt;?\s+?line-height:?\s+?100%['\"]>(.+?)</span>#is" , array( &$this, 'unconvert_size' ), $txt );
			}
			
			while ( preg_match( "#<span style=['\"]color:?(.+?)['\"]>(.+?)</span>#is", $txt ) )
			{
				$txt = preg_replace( "#<span style=['\"]color:?(.+?)['\"]>(.+?)</span>#is"    , "\[color=" . trim("\\1") . "\]\\2\[/color\]", $txt );
			}
			
			while ( preg_match( "#<span style=['\"]font-family:?(.+?)['\"]>(.+?)</span>#is", $txt ) )
			{
				$txt = preg_replace( "#<span style=['\"]font-family:?(.+?)['\"]>(.+?)</span>#is", "\[font=\"" . trim("\\1") . "\"\]\\2\[/font\]", $txt );
			}
			
			while ( preg_match( "#<span style=['\"]background-color:?\s+?(.+?)['\"]>(.+?)</span>#is", $txt ) )
			{
				$txt = preg_replace( "#<span style=['\"]background-color:?\s+?(.+?)['\"]>(.+?)</span>#is", "\[background=\\1\]\\2\[/font\]", $txt );
			}
			
			# Legacy <strike>
			$txt = preg_replace( "#<s>(.+?)</s>#is"            , "\[s\]\\1\[/s\]"  , $txt );
			
			//-----------------------------------------
			// Tidy up the end quote stuff
			//-----------------------------------------
			
			$txt = preg_replace( "#(\[/QUOTE\])\s*?<br .\s*#si", "\\1\n", $txt );
			$txt = preg_replace( "#(\[/QUOTE\])\s*?<br>\s*#si"  , "\\1\n", $txt );
			
			$txt = preg_replace( "#<!--EDIT\|.+?\|.+?-->#" , "" , $txt );
			$txt = str_replace( "</li>", "", $txt );
			
			$txt = str_replace( "™", "™", $txt );
		}
		
		//-----------------------------------------
		// Unconvert custom bbcode
		//-----------------------------------------
				
		$txt = $this->post_db_unparse_bbcode( $txt );
		
		//-----------------------------------------
		// Parse html
		//-----------------------------------------
		
		if ( $this->parse_html )
		{
			$txt = str_replace( "'", "'", $txt);
		}
		
		return trim(stripslashes($txt));
	}


#3 Пользователь офлайн   GSMmaster 

  • I hate staff :)
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 7 019
  • Регистрация: 14 Сентябрь 10
  • Сказали спасибо раз:
  • ГородNapoli Scitico, Russia
  • Страна:  

Отправлено 03 Апрель 2014 - 13:27

Судя по всему, проблема в самой базе данных. Никто ничего в тот момент не трогал, а оно вылезло. Я склоняюсь к нарушению БД.


#4 Пользователь офлайн   Schwein 

  • –· ·– ···· ··– ·––– ··––··
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Модераторы
  • Сообщений: 14 866
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:

Отправлено 03 Апрель 2014 - 13:34

GSMmaster
А как в базе сообщение хранится? Можно увидеть результат простого select'а по какому-нить тестовому сообщению?


#5 Пользователь офлайн   GSMmaster 

  • I hate staff :)
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 7 019
  • Регистрация: 14 Сентябрь 10
  • Сказали спасибо раз:
  • ГородNapoli Scitico, Russia
  • Страна:  

Отправлено 03 Апрель 2014 - 13:41

Это уже не ко мне вопрос :)


#6 Пользователь офлайн   Schwein 

  • –· ·– ···· ··– ·––– ··––··
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Модераторы
  • Сообщений: 14 866
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:

Отправлено 03 Апрель 2014 - 13:45

Да это понятно :D

Собственно — чтоб понять, как оно через regexp'овые поиски/замены проходит, надо видеть то, что в базе хранится. Это если проблема в php-коде.


#7 Пользователь офлайн   GSMmaster 

  • I hate staff :)
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 7 019
  • Регистрация: 14 Сентябрь 10
  • Сказали спасибо раз:
  • ГородNapoli Scitico, Russia
  • Страна:  

Отправлено 03 Апрель 2014 - 13:50

Ну можешь взять копию базы, проинсталлить движок форума под апачем, базу в мускуль и рули на локальной машинке.


#8 Пользователь офлайн   Sirius 

  • A1
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 4 444
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь
  • Страна:  

Отправлено 03 Апрель 2014 - 14:00

Вариантов может быть несколько. Либо сообщение портится, перед тем как записаться в БД и уходит туда уже со скобками. Но тогда возникает вопрос, почему оно из БД достается в нормальном виде? Мы-то видим его при просмотре нормально. Значит, этот вариант отпадает.

Либо, второй вариант, сообщение портится, когда включается редактирование уже существующего сообщения. Сначала сообщение нормально извлекается из БД, а потом портится вышеприведенными функциями, которые осуществляют преEdit-парсинг.


#9 Пользователь офлайн   Sirius 

  • A1
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 4 444
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь
  • Страна:  

Отправлено 03 Апрель 2014 - 14:02

Просмотр сообщенияGSMmaster сказал:

Никто ничего в тот момент не трогал, а оно вылезло.

Так не бывает. Очень сомневаюсь в этом. Кто-то что-то тронул.


#10 Пользователь офлайн   GSMmaster 

  • I hate staff :)
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 7 019
  • Регистрация: 14 Сентябрь 10
  • Сказали спасибо раз:
  • ГородNapoli Scitico, Russia
  • Страна:  

Отправлено 03 Апрель 2014 - 14:02

Мое мнение - проинсталлить на тестовом компе чистый движок, запихать текущую копию БД и проверить на глюк. Если пропало - траблы в коде, не пропало - в БД. Гадать просто замучитесь... Я хорошо помню, когда глюк вылез, никто ничего с движком не делал, 100%.


#11 Пользователь офлайн   Nixoid 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Активный участник
  • Сообщений: 545
  • Регистрация: 24 Март 14
  • Сказали спасибо раз:
  • ГородНиколаев

Отправлено 03 Апрель 2014 - 15:26

test

:rolleyes2:

Сообщение отредактировал SlavaD: 03 Апрель 2014 - 15:45


#12 Пользователь офлайн   Schwein 

  • –· ·– ···· ··– ·––– ··––··
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Модераторы
  • Сообщений: 14 866
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:

Отправлено 03 Апрель 2014 - 15:31

Nixoid
Проблема именно после редактирования, видите?


#13 Пользователь офлайн   GSMmaster 

  • I hate staff :)
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 7 019
  • Регистрация: 14 Сентябрь 10
  • Сказали спасибо раз:
  • ГородNapoli Scitico, Russia
  • Страна:  

Отправлено 03 Апрель 2014 - 15:31

Иногда и после цитирования.


#14 Пользователь офлайн   Nixoid 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Активный участник
  • Сообщений: 545
  • Регистрация: 24 Март 14
  • Сказали спасибо раз:
  • ГородНиколаев

Отправлено 03 Апрель 2014 - 15:41

ну тут проблема при обратном парсинге, там парсится в обратном направлении html в bbcod
и гдето чтото лишнее цепляется.


мне сложно тестировать потому как вы выбрали функции из класа а эти функции дергают еще другие методы и данные.

Если я чтото найду именно в этих кусках кода, я напишу :)


Поблагодарили: 1

#15 Пользователь офлайн   Moloch 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Активный участник
  • Сообщений: 719
  • Регистрация: 03 Апрель 14
  • Сказали спасибо раз:
  • ГородБабруйск
  • Страна:  

Отправлено 03 Апрель 2014 - 15:46

:whistle:/>/>/> узнать, примерно, когда пошёл баг с цитированием\редактированием
и посмотреть на сервере последнюю дату изменения файлов
даты не совпадают-смотреть БД

редактируем :pardon:/>/>

на тему смайлов и бб кодов-в конце смайла должно идти такое . или нет?

test_check :whistle:

Сообщение отредактировал Moloch: 03 Апрель 2014 - 16:10

пыщ-пыщ

#16 Пользователь офлайн   Dolphin 

  • Продвинутый пользователь
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Пoльзователь
  • Сообщений: 52
  • Регистрация: 24 Март 13
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 03 Апрель 2014 - 15:48

Хоть смайлы портятся и в конце строки без окончания пробелом, и будучи окруженными пробелами, меня смущает закоменченность этой строки:

/* We need to make sure emoticons are wrapped in spaces so they are parsed properly */
//$txt = str_replace( $value, ' ' . $_emoCode . ' ', $txt );
/* We are no longer matching opening/closing "space" so no need to add it */


Какова предыстория сего действа?

Сообщение отредактировал Dolphin: 03 Апрель 2014 - 16:09


#17 Пользователь офлайн   Nixoid 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Активный участник
  • Сообщений: 545
  • Регистрация: 24 Март 14
  • Сказали спасибо раз:
  • ГородНиколаев

Отправлено 03 Апрель 2014 - 15:48

так мне сложно тестировать

попробуйте в первой функции поменять строку


preg_match_all( "#(<img(?:[^>]+?)class=['\"]bbc_emoticon[\"'](?:[^>]+?)alt=['\"](.+?)[\"'](?:[^>]+?))#is", $txt, $matches );


на


preg_match_all( "#(<img(?:[^>]+?)class=['\"]bbc_emoticon[\"'](?:[^>]+?)alt=['\"](.+?)[\"'](?:[^>]+?)>)#is", $txt, $matches );

Сообщение отредактировал Nixoid: 03 Апрель 2014 - 15:48


Поблагодарили: 8 :

#18 Пользователь офлайн   SlavaD 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Технический администратор
  • Сообщений: 1 121
  • Регистрация: 16 Сентябрь 10
  • Сказали спасибо раз:
  • Страна:  

Отправлено 03 Апрель 2014 - 15:48

> select * from posts where pid=269284;
test <br .
<br .
 <img src='http://simferopol.in/public/style_emoticons/<#EMO_DIR#>/rolleyes2.gif' class='bbc_emoticon' alt=':rolleyes2:/>/>' .

криво отобразилось... сек

Прикрепленное изображение: simf-bug.jpeg
во


#19 Пользователь офлайн   Sirius 

  • A1
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 4 444
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь
  • Страна:  

Отправлено 03 Апрель 2014 - 16:08

Test :)

Check it :beer2:

It works! :bravo:


#20 Пользователь офлайн   Nixoid 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Активный участник
  • Сообщений: 545
  • Регистрация: 24 Март 14
  • Сказали спасибо раз:
  • ГородНиколаев

Отправлено 03 Апрель 2014 - 16:09

Просмотр сообщенияSirius (03 Апрель 2014 - 16:08) писал:

Test :)

Check it :beer2:

It works! :bravo:


Это тема не для тестов!!!!! :rofl:


Поблагодарили: 2 :

Поделиться темой:


  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

2 человек читают эту тему
0 пользователей, 2 гостей, 0 скрытых пользователей