|
|
|
| Хочу запретить URL'ы в гостевой книге, если эти URL'ы вуказывают на др. сайты.
Подкинте выражение. | |
|
|
|
|
|
|
|
для: tAleks
(04.05.2007 в 10:47)
| | url обязательно должен в http/https/ftp начинаться или может быть без них? будет ли он обрамлен тегами или его просто из текста надо выдрать? | |
|
|
|
|
|
|
|
для: Loki
(04.05.2007 в 10:54)
| | >url обязательно должен в http/https/ftp начинаться или может быть без них?
Может быть и без них.
>будет ли он обрамлен тегами или его просто из текста надо выдрать?
Если ссылка указывает на мой сайт, например на какую-нибудь др. страницу, то он обрамляется в тег ссылки, делается активной ссылкой, а если ссылка указывает на др. сайт, то вырезать его не надо, буду выводить сообщение о том что ссылки на др. сайты нельзя. | |
|
|
|
|
|
|
|
для: tAleks
(04.05.2007 в 11:01)
| |
<?
preg_match_all('#(?:\s|^)(?:(?:ftp|https?)://)?((?i:[a-z0-9](?:[\-a-z0-9]*[a-z0-9])?\.)+(?-i:[a-z]{2,5}\b))(?::\d+)?(?:/[\w\.\-=_\?&\#;]*)*(?:\s|$)#', $text, $links);
print_r($links);
|
ну вот как-то так... остается только проверить, содержит ли массив $links домены отличные от текущего
ограничение этой регулярки в том, что url не должен ни к чему прилипать. то есть в начале и в конце должны быть либо пробельные символы, либо конец строки. | |
|
|
|
|
|
|
|
для: tAleks
(04.05.2007 в 11:01)
| | >Если ссылка указывает на мой сайт, например на какую-нибудь др. страницу, то он обрамляется в тег ссылки, делается активной ссылкой, а если ссылка указывает на др. сайт, то вырезать его не надо, буду выводить сообщение о том что ссылки на др. сайты нельзя.
Так не делайте этот чужой URL ссылкой. Вымарывать-то зачем? Чем он Вам жизнь портит? | |
|
|
|
|
|
|
|
для: tAleks
(04.05.2007 в 10:47)
| | Можно просто запретить последовательность . и 2-6 букв английского алфавита - у вас сообщения в гостевой книге наверняка по русски пишутся...
<?php
if(preg_match("|\.[a-z]{2-6}\b|is", $message)) exit("URL запрещены");
?>
|
| |
|
|
|