Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   регулярные выражения. вопрос (https://forum.antichat.xyz/showthread.php?t=39244)

DRON-ANARCHY 30.04.2007 18:29

регулярные выражения. вопрос
 
вопрос:
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

а то в таком виде кушает только вместе в протоколом и без параметров

GreenBear 30.04.2007 18:37

http://regexlib.com/Search.aspx?k=link
посмотри )

DRON-ANARCHY 30.04.2007 18:46

Спасиба. Я весь гугл обшарил, а эту штуку не находил)

DRON-ANARCHY 30.04.2007 19:01

Не блин... хрень какая-то... там все служебные символы закручены через кодировки и я хрен славливаюсь...

mamamot 30.04.2007 19:58

PHP код:

$regex="#^(http://|https://|ftp://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|cgi|pl|phtml))?([-a-z0-9_:@&\?=+,\.!/~*'%$]+)?$#i"

Вот так вот, должно работать:)

hidden 30.04.2007 20:37

А это тебе для чего? Если тебе этим в чате или в форуме фильтровать, то под него попадут все любители не ставить пробел после точки, как тут "Привет.Как дела" - <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);

DRON-ANARCHY 30.04.2007 21:18

Hidden спасибо. так работает... но теперь смайлики перестали отображаться)))))))))))

PS мне под гостевуху....

hidden 30.04.2007 21:22

Цитата:

Сообщение от DRON-ANARCHY
Hidden спасибо. так работает... но теперь смайлики перестали отображаться)))))))))))

PS мне под гостевуху....

Приведи пример, каие именно, может щя исключения для них сделаю :)

DRON-ANARCHY 30.04.2007 21:29

адреса должны иметь вид
Код:

images/smiles/smile37.gif
а твоя строка переворачивает все слеши и ваще не пойми чего творит))
Код:

<img src="images/smiles/<a href="//smile9.gif/" target="_blank">//smile9.gif/</a>" border="0">
чорт. я загнался совсем! Убейте меня!!!! я забыл что слеши надо У СЕБЯ перевернуть!!!! бекап юзаю..абассака я дурачок


все исправил. теперь ситуация описана актуально)

hidden 30.04.2007 21:36

Ну так она не может отличить имя с расширением от домена первого и второго уровня, можно не принимать единичный слеш перед доменным именем, можно фильтровать возможные доменные имена первого уровня, а можно фильтровать возможные расширения файлов, а вообще, смайлы должны обрабатываться после него. Когда я обрабатываю ббкоды, я их превращаю в промежуточную форму, чтоб не попадали под следующие выражения, а потом, всех сразу, в html


Время: 18:15