Показать сообщение отдельно

  #2  
Старый 09.05.2006, 09:25
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

вот моя альтернатива:
PHP код:
$val=str_replace("'""'"$val);
$val=str_replace('"'"""$val);
$val=str_replace(">"">"$val);
$val=str_replace("<""&lt;"$val);
$val=str_replace("`""&#96"$val);
$val=str_replace("\\""\"$val); 
+ nl2br() и этого будет достаточно. В твоем же примере абсолютно ненужным являются строчки
PHP код:
$val str_replace"\""'&quot;'$val );
$val str_replace"'" '&quot;'$val );
$val stripslashes($val); 
Первые две уже обрабатываеются при htmlspecialchars() с флагом ENT_QUOTES вроде. А stripslashes() вообще не нужен, коли ты преобразуешь все ковычки до этого.
Непонятно зачем делаешь:
PHP код:
$val preg_replace"/\r/",, $val ); 
Вообще не понятно. \r и \n абсолютно никак не влияют на отображение html`а. Тем более что ты все равно потом делаешь nl2br().
Не понял зачем нужна
PHP код:
$val preg_replace"/\\\$/"'$'$val ); 
Вообще не понял =)))

Опять же, Дикс, твоя основная ошибка. Опять укажу на нее все тем же анекдотом:
"Береженого бог бережет", - сказала монашка, надивая презерватив на свечку. Проще будь. Начни с того, что разберись, какие именно символы тебе нужно отфильтровать. И уже потом пиши код.

И еще одно. Заменяя двойную, одинарную ковычку и перфекс на &quot;... Ну это короче не правильно. Если я пишу на форуме перфикс, значит я хочу чтобы именно перфикс стоял там, где я его поставлю. А не двойная ковычка, как у тебя. К пример я пишу
Цитата:
I`m very big lamer
, а твой форум выдаст мне
Цитата:
I"m very big lamer
. Не хорошо это
 
Ответить с цитированием