Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

А что лучше Perl или PHP   Найти похожие ветки 

 
Loginov Dmitry ©   (2006-01-28 13:24) [80]

... &ltB&gt


 
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
15-1138815520
Serg1981
2006-02-01 20:38
2006.02.19
RichEdit


6-1129584213
Lord_of_Darkness
2005-10-18 01:23
2006.02.19
Рдновременный прием TServerSocket ом файлов от нескольких клиенто


11-1119970812
Alex1
2005-06-28 19:00
2006.02.19
Как работать с TreeView


1-1137775503
sco
2006-01-20 19:45
2006.02.19
Диафильм в TListView


4-1133630611
Bolek
2005-12-03 20:23
2006.02.19
работа со службой