PHP в деталях


         

Комментарии к статье ""


25.2.2001 09:23  Александр

Уважаемый, вы кое-что перепутали в своей заметке о регулярных выражениях. Как раз таки по умолчанию перловские регулярные выражения жадны (greedy). Жадными они называются потому, что стремятся "заглотить" побольше. Знак вопроса делает их ungreedy. Отсюда и "параметр" такой - буква 'u'.

Ответ DL:

Ясно. Я понял "жадность" в смысле "выдать минимальную строку". Исправлю.

14.3.2001 17:39  Sergei  []

Дима, я не очень разбираюсь в Regexp-ах, Но нашел ошибку у тебя в строчке

$text = preg_replace("/.*?/", "\\0 [\\1]", $text);

нужно перед поставить backslash.

$text = preg_replace("/.*?/", "\\0 [\\1]", $text);

И хотел бы попросить у тебя помощи в свой проблеме (тоже Regexp). Уже 2 недели "отжимаюсь" -(....

Ответ DL:

Эти обратные слэши... вечно исчезают.

14.3.2001 17:42  Sergei  []

О! пардон. это репается (пропадает обратный слешь)при загрузке страницы.... я его вписал, а он вырезался при обработке. Видимо у тебя там тоже он есть.

Ответ DL:

Эти обратные слэши... вечно исчезают.

24.3.2001 08:50  Antoxa  []

Как сжать все повторные выражения, например [/url][url][/url][/url] должна вывести [/url][url][/url]

Ответ DL:

Разбить explod-ом. Как через рег. выражения - не представляю.

30.3.2001 17:12  Max  []

Как написать регулярное выражение что бы оно вырезало содержимое из скобок например "..(456,78).."

насколька я знаю () это служебные символы ? конструкции типа ([0-9]{1,9}) результатов не дают ....

Ответ DL:

Ну, дык! Конструкции неправильные.

$foo = preg_replace("/\([\d\,]*\)/", "", $foo);

10.4.2001 19:34  kirill

а как с помощью рег. выражений "выдрать" из страницы все адреса ссылок (то, что находится за ]

Ну тут всё понятно, а если я хочу выризать и "]

Задача:

заменить в тексте все вида: http:\что-то

на:

Пишу команду:

$message = preg_replace("/(http://[w&/-:.?=$%]{10,})/i", "", $message);

Если нормальная ссылка вида: http:\www.zoo.kharkov.ua, то заменяется корректно.

А в ссылках вида: http://xpoint.ru/cgi-bin/forum.cgi?action=create_form&id=8 - все что идет после знака &, остается за пределами тега.

И еще если в конце ссылки стоит "." - не могу ее отбросить, она попадает в ссылку.

Может кто дать свой вариант PHP-кода, для замены http://, ftp:// и e-mail на сответствующие сылки.

Пожалуйста!

<


Содержание  Назад  Вперед