Перейти к контенту
  • 0

Непонятки с отображение сообщения


BabySG

Вопрос

Добавил в стандартный тэг

 раскраску текста, возникла следующая проблема:

Создаем сообщение -> отправляем -> получаем:
[attachment=1709:Before.png]
Вот так выглядит код:
[html]<div class="postcolor" id="post-17"><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1--><pre><font color="blue"><font face="Courier">СтрокаТекста <span style="color: red;">=</span> <span style="color: black;">"Некий текст тут "</span><span style="color: red;">;</span><br><br></font></font></pre><!--c2--></div><!--ec2--></div>[/html]

 

Вроде все хорошо и прекрасно, но после обновления страницы получается следующее:

post-73963-1200758024_thumb.png

Вот так выглядит код:

[html]<div class="postcolor" id="post-17"><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1--><pre><font color="blue"><font face="Courier"><span style="color: brown;">СтрокаТекста <span style="color: red;">=</span> "Некий текст тут ";</span><br></font></font></pre><!--c2--></div><!--ec2--></div>[/html]

 

Никак не могу понять, откуда ноги растут... При это, если открыть для редактирования это сообщение, оно будет в точности соответсвовать оригинальному. Если после этого его вновь отправить - отобразиться правильно, но после обновления страницы выползает таже проблема.

 

В IPB только начинаю разбираться, поэтому прошу подсказки, в чем может быть проблема?

post-73963-1200757835_thumb.png

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

1. Я не знаю, что это :D Я только начинаю разбираться с Web-технологиями ;) Для меня многое дико после С++

2. Если использовать предпросмотр - все нормально, проблема именно после отправки и последующего обновления страницы.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Значиться:

 

CALSS_BBCODE_CORE.PHP изменена функция:

function regex_code_tag($txt=""){

	$default = "\[code\]$txt\[/code\]";

	if($txt <> ""){

		$handle = fopen("d:\\info.txt", "a+b");
		fwrite($handle, $txt. "\n");
		fclose($handle);

		$txt = stripcslashes($txt);

		preg_replace("[\t]", "	", $txt);

		$arrayStrings = explode("\n", $txt);

		$finalString = "<pre><FONT COLOR=\"blue\"><FONT FACE=\"Courier\">";

		foreach ($arrayStrings as $string){
			$finalString .= paintCode($string, $inString) . '<br>';
		}

		$finalString .= "</FONT></FONT></span></pre>";
					 // ТОЧКА 1
		$html = $this->wrap_style('code');

		return "<!--c1-->{$html['START']}<!--ec1-->$finalString<!--c2-->{$html['END']}<!--ec2-->";
	}

}

 

CLASS_BBCODE.PHP

 

Добавлено:

 

		 $search = array (
			"'<script[^>]*?>.*?</script>'si",  
			"'<[\/\!]*?[^<>]*?>'si",	
			"'([\r\n])'",
			"'[\t]'",

			"'&(quot|#34);'",
			"'&(amp|#38);'i",
			"'&(lt|#60);'i",
			"'&(gt|#62);'i",
			"'&(nbsp|#160);'i",
			"'&(iexcl|#161);'i",
			"'&(cent|#162);'i",
			"'&(pound|#163);'i",
			"'&(copy|#169);'i",
			"'(\d+);'e");			 

$replace = array (
			"",
			"",
			"\\1",
			"	",

			"\"",
			"&",
			"<",
			">",
			" ",
			chr(161),
			chr(162),
			chr(163),
			chr(169),
			"chr(\\1)");

	$txt = preg_replace($search, $replace, $txt);

 

Собственно, в точке 1 строка форматируется правильно.

 

 

Сорри, ошибся, приведенный выше код соответствует такому изображению:

post-73963-1200772231_thumb.png

Код такой:

<div class="postcolor" id="post-20"><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1--><pre><font color="blue"><font face="Courier">СтрокаТекста <span style="color: red;">=</span> "<span style="color: red;">;</span>Некая строка "<span style="color: red;">;</span><span style="color: red;">;</span><br></font></font></pre><!--c2--></div><!--ec2--></div>

 

Изменения были такие:

 

preg_replace("[\t]", "	", $txt);
$txt = str_replace( """	, """ , $txt ); // УДАЛЕНА ВОТ ЭТА СТРОКА
$arrayStrings = explode("\n", $txt);

 

Как я понимаю, проблема в преобразовании сущностей? Но как ее победить...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

ВСЕ! Разобрался!

 

Как и подозревал - вся проблема была в преобразовании символа "

 

После:

$txt = stripcslashes($txt);

 

Добавил:

$txt = str_replace( """, "\"" , $txt );

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.