Текущий архив: 2006.02.19;
Скачать: CL | DM;
Вниз
А что лучше Perl или PHP Найти похожие ветки
← →
Loginov Dmitry © (2006-01-28 13:24) [80]... <B>
← →
Loginov Dmitry © (2006-01-28 13:26) [81]Ну что за фигня? Хочу написать
← →
Loginov Dmitry © (2006-01-28 13:26) [82]На ну их нафиг эти тэги :(((((
← →
mfender © (2006-01-28 13:47) [83]
> Действительно, проще всего запретить любые тэги. Иначе больно
> сложно искать парные тэги. Например для тэга
У php есть такая функция - strip_tags()
Первый параметр - собственно строка, из которой удаляются тэги.
Второй параметр - опционален, в нем перечисляются тэги, которые хочется оставить.
Например,
$text = "<p><a href="#">Текст сообщения из гостевой</a> книги</p>";
echo strip_tags($text, "");
оставит тебе пары и , убрав все остальные тэги.
← →
mfender © (2006-01-28 13:50) [84]неправильно написал тэги. их тут не видно...
$text = "<p><a href="#">Текст сообщения из гостевой</a> книги</p>";
echo strip_tags($text, "");
← →
Loginov Dmitry © (2006-01-28 14:40) [85]Не, strip_tags() не устраивает. Допустим, есть открывающий тэг В, а закрывающего нет, что тогда? Все последующие сообщения будут выделены жирным шрифтом.
← →
McSimm © (2006-01-28 15:03) [86]
> Loginov Dmitry © (28.01.06 14:40) [85]
Если нет желания стермиться к строгому HTML - просто подсчитайте количество открытых и закрытых тэгов. Добаьте закрывающий в конце сообщения.
← →
McSimm © (2006-01-28 15:03) [87]... если не хватает
← →
vidiv © (2006-01-28 15:09) [88]http://nepom.ru/text.php
Я сам написал и пользуюсь, функция rn2p_buic_smiles
← →
DSKalugin © (2006-01-28 15:13) [89]нет, что тогда?
тогда уберется один открывающий В
вырезаются только сами тэги, а то что внутри них - остается
← →
vidiv © (2006-01-28 15:14) [90]Прошу учесть, что при использовании функций учитывается, что текст предварительно преобразован:
$text = trim(preg_replace("/[\r\n]+/s","\r\n", $text));
$text = trim(preg_replace("/[\x01-\x09\x0B\x0C\x0E-\x1F]+/s"," ", $text));
← →
vidiv © (2006-01-28 15:15) [91]strip_tags() допускает
<b onmouseover="...">
Можно кукис украсть
← →
Loginov Dmitry © (2006-01-28 19:17) [92]
> vidiv © (28.01.06 15:14) [90]
>
> Прошу учесть, что при использовании функций учитывается,
> что текст предварительно преобразован:
> $text = trim(preg_replace("/[\r\n]+/s","\r\n", $text));
> $text = trim(preg_replace("/[\x01-\x09\x0B\x0C\x0E-\x1F]+/s",
> " ", $text));
Регулярные выражения для меня пока все равно, что китайская грамота :)
← →
kaZaNoVa © (2006-01-28 19:18) [93]PHP
← →
Loginov Dmitry © (2006-01-28 19:30) [94]
> kaZaNoVa © (28.01.06 19:18) [93]
>
> PHP
Спасибо!
-----------------------------------------------------------
Например вот такую конструкцию как можно разобрать:
preg_replace("/[\x01-\x20]*\<(i|u|b|span)(?:\s[^>]*)?\>((?R)|[\x01-\x20]*)\<\/\\1\>[\x01-\x20]*/e", "strlen(strip_tags("$0"))>0?" ":""", $text);
← →
vidiv © (2006-01-29 10:07) [95]
> Например вот такую конструкцию как можно разобрать:
Ищет в $text пустые теги <i-></i-> <b-></b-> .. <span-></span-> (Минусы надо убрать) и удаляет их.
А вообще тут описан синтаксис регулярных выражений.
http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php
← →
Loginov Dmitry © (2006-01-29 10:14) [96]
> А вообще тут описан синтаксис регулярных выражений.
> http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.
> php
Вот ну надо же! Был я на этом сайте, документацию скачал, а вот этой самой странички не заметил. Спасибо!
← →
vidiv © (2006-01-29 10:18) [97]
> самой странички не заметил
В Руководстве в формате chm находишь функцию preg_grep, и внизу страницы нажимаешьПред.
← →
Loginov Dmitry © (2006-01-29 10:32) [98]
> Книга Jeffrey Friedl"а содержит много обсуждений вопроса оптимизации регулярных выражений
По этим регулярным выражениям написаны целые книги, и чтоб в них разобраться, похоже нужно прочитать хоть одну из них :(
← →
vidiv © (2006-01-29 10:43) [99]
> Loginov Dmitry © (29.01.06 10:32) [98]
Этого мануала достаточно. Для начала просто внимательно прочитай, чтобы знать что вообще можно с помощью них делать, а потом уже эксперементируй
← →
Loginov Dmitry © (2006-01-30 22:54) [100]Лучше всего про регулярные выражения пишут на сайте http://phpclub.ru/
Там есть статья, называется "Регулярные выражения, Часть I". Разобраться было действительно несложно.
> McSimm © (28.01.06 15:03) [86]
> Если нет желания стермиться к строгому HTML - просто подсчитайте
> количество открытых и закрытых тэгов. Добаьте закрывающий
> в конце сообщения.
С помощью регулярный выражений все становиться гораздо проще. Например для обработки тэга [B] я составил следующий код:
while (preg_match("/^.*(\[[bB]\].*\[\/[bB]\]).*$/", $message , $regarray)){
$tmp = $regarray[1];
$tmp1 = preg_replace("/^\[[bB]\]/", "", $tmp);
$tmp1 = preg_replace("/\[\/[bB]\]$/", "", $tmp1);
$message = str_replace($tmp, $tmp1, $message);
}
Правда, пришлось заменить угловые тэги квадратными скобками, но так даже лучше.
Страницы: 1 2 3 вся ветка
Текущий архив: 2006.02.19;
Скачать: CL | DM;
Память: 0.64 MB
Время: 0.093 c