Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
регулярные выражения. вопрос |

30.04.2007, 18:29
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
регулярные выражения. вопрос
вопрос:
PHP код:
$mess=preg_replace("!(https?|ftp)://(.*?)([\s<'\"]){1,}!ise", "'<a href=\"\\1://\\2\" target=\"_blank\">\\1://\\2</a>\\3'", $mess);
я не до конца раскурил эти штуки... но все-таки...
Мне надо бы сделать так, чтобы оно жрало ссылки вида
www.site.ru
site.ru
www.ste.ru?parametr=zna4enie
а то в таком виде кушает только вместе в протоколом и без параметров
|
|
|

30.04.2007, 18:37
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
http://regexlib.com/Search.aspx?k=link
посмотри )
|
|
|

30.04.2007, 18:46
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
Спасиба. Я весь гугл обшарил, а эту штуку не находил)
|
|
|

30.04.2007, 19:01
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
Не блин... хрень какая-то... там все служебные символы закручены через кодировки и я хрен славливаюсь...
|
|
|

30.04.2007, 19:58
|
|
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме: 38505
Репутация:
48
|
|
PHP код:
$regex="#^(http://|https://|ftp://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|cgi|pl|phtml))?([-a-z0-9_:@&\?=+,\.!/~*'%$]+)?$#i";
Вот так вот, должно работать 
|
|
|

30.04.2007, 20:37
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
А это тебе для чего? Если тебе этим в чате или в форуме фильтровать, то под него попадут все любители не ставить пробел после точки, как тут "Привет.Как дела" - <a href="//Привет.Как/"...
Код:
$mess=preg_replace('!(https?:|ftp:|)(//|)([\w]+\.\w[\w.]+)/?([^\<\>\"\n\r\\\\?]*|)(\?[^\<\>\"\n\r\\\\]*|)!i', '<a href="\1//\3/\4\5" target="_blank">\1//\3/\4\5</a>', $mess);
|
|
|

30.04.2007, 21:18
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
Hidden спасибо. так работает... но теперь смайлики перестали отображаться)))))))))))
PS мне под гостевуху....
|
|
|

30.04.2007, 21:22
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Сообщение от DRON-ANARCHY
Hidden спасибо. так работает... но теперь смайлики перестали отображаться)))))))))))
PS мне под гостевуху....
Приведи пример, каие именно, может щя исключения для них сделаю 
|
|
|

30.04.2007, 21:29
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
адреса должны иметь вид
Код:
images/smiles/smile37.gif
а твоя строка переворачивает все слеши и ваще не пойми чего творит))
Код:
<img src="images/smiles/<a href="//smile9.gif/" target="_blank">//smile9.gif/</a>" border="0">
чорт. я загнался совсем! Убейте меня!!!! я забыл что слеши надо У СЕБЯ перевернуть!!!! бекап юзаю..абассака я дурачок
все исправил. теперь ситуация описана актуально)
Последний раз редактировалось DRON-ANARCHY; 30.04.2007 в 21:39..
|
|
|

30.04.2007, 21:36
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Ну так она не может отличить имя с расширением от домена первого и второго уровня, можно не принимать единичный слеш перед доменным именем, можно фильтровать возможные доменные имена первого уровня, а можно фильтровать возможные расширения файлов, а вообще, смайлы должны обрабатываться после него. Когда я обрабатываю ббкоды, я их превращаю в промежуточную форму, чтоб не попадали под следующие выражения, а потом, всех сразу, в html
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|