|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » PHP. Регулярные выражения и русские символы. |
|
PHP. Регулярные выражения и русские символы.
|
Engrossed by the Void Сообщения: 2229 |
Пытаюсь отловить в тексте www адрес в виде
Получается такая реализация:
Единственное регулярка не отлавливает конструкции если в них "заголовок ссылки" набран русскими буквами. Setlocale не помогла. Есть варианты? |
|
------- Отправлено: 15:47, 14-01-2004 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать Prisoner
<?php // коды для вставки картинок $Codes["img"] = array( // esc [[img]], [[/img]], [[img=*]] => [img], [/img], [img=*] "#\[\[(/?)img\]\]#is" => "[$1img]", "#\[\[img=(\S+?)\]\]#is" =>"[img=$2]", // Безопасность: убираем потенциальные ссылки на скрипты (\s* - защита от IE) "#\[img=.*?s\s*c\s*r\s*i\s*p\s*t\s*:.*?\]#is" => "[img=<font class=\"warning\">«предупреждение: скрипты в постах запрещены»</font>]", "#\[img\].*?s\s*c\s*r\s*i\s*p\s*t\s*:.*?\[/img\]#is" => "[img]<font class=\"warning\">«предупреждение: скрипты в постах запрещены»</font>[/img]", // Безопасность: убираем картинки, ссылающиеся на e-mail (назойливая штука) "#\[img=[^]]*?mailto:[^]]*?\]#is" => "[img=<font class=\"warning\">«предупреждение !»</font>]", "#\[img\][^]]*?mailto:[^]]*?\[/img\]#is" => "[img]<font class=\"warning\">«предупреждение !»</font>[/img]", "#\[img=(\S+?)\]\s*(?!.*?\[(?:img).*?)(.+?)\s*\[/img\]#is" => "<img src=\"$1\" alt=\"$2\" title=\"$2\" />", "#\[img]\s*(?!.*?\[(?:img).*?)(.+?)\s*\[/img\]#is" => "<img src=\"$1\" alt=\"$1\" title=\"\" />", "#\[img=(\S+?)\]#is" => "<img src=\"$1\" alt=\"$1\" />", ); // простые коды $Codes["easy"] = array( // esc кодов с непосредственным html-эквивалентом "#\[\[(/?)(b|i|u|s|strike|small|center|pre|tt|sub|sup)\]\]#is" => "[$1$2]", "#\[\[(br|hr)\]\]\n?#i" => "[$1]", // Коды с непосредственным html-эквивалентом "#\[(b|i|u|s|strike|small|center|pre|tt|sub|sup)\](.+?)\[/\\1\]#is" => "<$1>$2</$1>", "#\[br\]\n?#i" => "<br />", "#\[hr\]\n?#i" => "<hr width=\"40%\" align=\"left\" />", // (c) (r) and (tm) "#\(c\)#i" => "©", "#\(tm\)#i" => "™", "#\(r\)#i" => "®", ); // коды цитирования $Codes["quote"] = array( // esc [q] [quote] "#\[\[(/?)(q|quote)\]\]#is" => "[$1$2]", "#\[\[(q|quote)=(\S+?)\]\]#is" =>"[$1=$2]", // [quote] без автора "#\[(q|quote)\](.*?)\[/\\1]#is" => "<blockquote class=\"title\">Цитата:</blockquote><blockquote class=\"body\">$2</blockquote>", // а вот так из надо применять: foreach($Codes["url"] as $rule => $value) while ( preg_match( $rule, $raw ) ) $raw = preg_replace($rule, $value, $raw, -1); PS рег експы проверенный и вроде все баги пофиксены, и дыры тоже. если что найдешь, то обязятельно напиши! |
|
------- Отправлено: 20:02, 14-01-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Vlad Drakula, да, выглядит забавно, более того - красиво. Надеюсь тебя не сильно озадачит просьба выслать кусок кода мылом, дабы не мучиться мыслью, что форум что-ть не так отобразил? Я покопаюсь еще...
|
------- Отправлено: 06:56, 15-01-2004 | #3 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Все гуд! Спасибо
![]() |
------- Отправлено: 14:31, 16-01-2004 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
регулярные выражения | Ginger | Вебмастеру | 60 | 21-03-2012 01:11 | |
[решено] PHP|регулярные выражения, preg_match | morgan1991 | Вебмастеру | 11 | 10-03-2010 01:03 | |
Разное - PHP - регулярные выражения: HELP | GoldenOrb | Программирование и базы данных | 10 | 08-09-2008 16:47 | |
PHP - регулярные выражения: HELP | GoldenOrb | Вебмастеру | 13 | 18-07-2008 16:05 | |
Регулярные выражения | est | Хочу все знать | 6 | 02-10-2002 14:17 |
|