Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запретить URL'ы в тексте сообщения в гостевой книге
 
 автор: tAleks   (04.05.2007 в 10:47)   письмо автору
 
 

Хочу запретить URL'ы в гостевой книге, если эти URL'ы вуказывают на др. сайты.

Подкинте выражение.

   
 
 автор: Loki   (04.05.2007 в 10:54)   письмо автору
 
   для: tAleks   (04.05.2007 в 10:47)
 

url обязательно должен в http/https/ftp начинаться или может быть без них? будет ли он обрамлен тегами или его просто из текста надо выдрать?

   
 
 автор: tAleks   (04.05.2007 в 11:01)   письмо автору
 
   для: Loki   (04.05.2007 в 10:54)
 

>url обязательно должен в http/https/ftp начинаться или может быть без них?

Может быть и без них.

>будет ли он обрамлен тегами или его просто из текста надо выдрать?

Если ссылка указывает на мой сайт, например на какую-нибудь др. страницу, то он обрамляется в тег ссылки, делается активной ссылкой, а если ссылка указывает на др. сайт, то вырезать его не надо, буду выводить сообщение о том что ссылки на др. сайты нельзя.

   
 
 автор: Loki   (04.05.2007 в 11:15)   письмо автору
 
   для: 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 не должен ни к чему прилипать. то есть в начале и в конце должны быть либо пробельные символы, либо конец строки.

   
 
 автор: Trianon   (04.05.2007 в 12:03)   письмо автору
 
   для: tAleks   (04.05.2007 в 11:01)
 

>Если ссылка указывает на мой сайт, например на какую-нибудь др. страницу, то он обрамляется в тег ссылки, делается активной ссылкой, а если ссылка указывает на др. сайт, то вырезать его не надо, буду выводить сообщение о том что ссылки на др. сайты нельзя.

Так не делайте этот чужой URL ссылкой. Вымарывать-то зачем? Чем он Вам жизнь портит?

   
 
 автор: cheops   (04.05.2007 в 13:58)   письмо автору
 
   для: tAleks   (04.05.2007 в 10:47)
 

Можно просто запретить последовательность . и 2-6 букв английского алфавита - у вас сообщения в гостевой книге наверняка по русски пишутся...
<?php
  
if(preg_match("|\.[a-z]{2-6}\b|is"$message)) exit("URL запрещены");
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования