|
|
|
| доброго дня всем !
я тут прочитал в вашей книге http://www.softtime.ru/bookphp/
раздел строковые функции и пример гостевой книги.
у меня возник вопорос.
например есть у нас такой текст:
Всем <b>привет</b>
если мы выводим этот текст с помошью функции htmlspecialchars()
то этот текст выводиться вместе с тегами а нужно чтобы слово привет было жирным
как быть ? | |
|
|
|
|
|
|
|
для: mirage
(14.12.2006 в 13:11)
| | str_replace();
:-) | |
|
|
|
|
|
|
|
для: Fli
(14.12.2006 в 14:19)
| | по подробнее можно
чет я непонял что нужно заменять ?
наверное ты не понял меня.
короче есть форма для добавления сообщения, на подобие как у softtime
после отправки я преобразую специальные символы в тексте в html теги
пример:
$msg = str_replace("[u]","<u>",$msg);
$msg = str_replace("[U]","<u>",$msg);
$msg = str_replace("","<i>",$msg);
$msg = str_replace("[I]","<i>",$msg);
$msg = str_replace("","<B>",$msg);
$msg = str_replace("[B]","<B>",$msg);
$msg = str_replace("","<SUB>",$msg);
$msg = str_replace("[SUB]","<SUB>",$msg);
$msg = str_replace("","<SUP>",$msg);
$msg = str_replace("[SUP]","<SUP>",$msg);
$msg = str_replace("[/u]","</u>",$msg);
$msg = str_replace("[/U]","</u>",$msg);
$msg = str_replace("","</i>",$msg);
$msg = str_replace("[/I]","</i>",$msg);
$msg = str_replace("","</B>",$msg);
$msg = str_replace("[/B]","</B>",$msg);
$msg = str_replace("","</SUB>",$msg);
$msg = str_replace("[/sub]","</SUB>",$msg);
$msg = str_replace("","</SUP>",$msg);
$msg = str_replace("[/sup]","</SUP>",$msg);
$msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a
href=\\2>\\2</a>\\3",$msg);
|
после этого данный текст записыиваю в БД
если мне надо его обратно вывести
то все нормально отображаестья со всеми выделениями, но сточки зрения безопасности данный вариант не подходит(вдруг сообщения содержит Java скрипты).
если же я использую функцию htmlspecialchars() то он выводит все подряд со всеми тегами
как же быть в такой ситуации ? | |
|
|
|
|
|
|
|
для: Mirage
(14.12.2006 в 14:22)
| | Так чтоль
<?php
$text="Всем <b>привет</b>";
$text=htmlspecialchars($text);
$text=str_replace("<b>","<b>","$text");
$text=str_replace("</b>","</b>","$text");
echo $text;
?> | |
|
|
|
|
|
|
|
для: Mirage
(14.12.2006 в 14:22)
| | А лучше, наверное, в БД записывать текст с BB тегами ...
А при выводе, уже после htmlspecialchars, заменять ББ теги нормальными ... | |
|
|
|
|
|
|
|
для: mirage
(14.12.2006 в 13:11)
| | Можно поступить следующим образом
<?php
$text = "Всем <b>привет</b>";
$text = htmlspecialchars($text);
$text = str_replace("<b>", "<b>", $text);
$text = str_replace("</b>", "</b>", $text);
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.12.2006 в 14:36)
| | спасибо все получилось как я сам не додумался..... | |
|
|
|