Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Фильтр рекламы
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Фильтр рекламы

Страниц (1): [1]
 

1. Gitya_Man - 18 Марта, 2012 - 15:35:10 - перейти к сообщению
помогите написать простенький фильтр рекламы
т.е пользователь пишет хттп: / / сайт . ру а при выводе сообщение получает {реклама запрещена} или подобное т.е дополнитльная фильтрация _POSTa как то так
2. DlTA - 18 Марта, 2012 - 15:45:09 - перейти к сообщению
ну так отфильтровывайте ссылки на сторонние ресурсы
3. Okula - 18 Марта, 2012 - 16:01:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('~https?://(www\.)?[\w-]+(\.[\w-]){1,3}(/.+)? ~isU', '{рекламма запрещена}', $_POST['text']);
4. Gitya_Man - 18 Марта, 2012 - 17:14:45 - перейти к сообщению
народ есть еще варианты?
(Добавление)
Okula пишет:
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('~https?://(www\.)?[\w-]+(\.[\w-]){1,3}(/.+)? ~isU', '{рекламма запрещена}', $_POST['text']);
не скрыл не одной ссылки
5. Okula - 18 Марта, 2012 - 18:18:31 - перейти к сообщению
Gitya_Man, да, чтот я немного там не то написал. Вот так будет лучше
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('~https?://(www\.)?[\w-]+(\.[\w-]+){1,3}/?.~isU', '{рекламма запрещена}', $_POST['text']);
6. Gitya_Man - 18 Марта, 2012 - 18:23:02 - перейти к сообщению
Okula пишет:
Gitya_Man, да, чтот я немного там не то написал. Вот так будет лучше
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('~https?://(www\.)?[\w-]+(\.[\w-]+){1,3}/?.~isU', '{рекламма запрещена}', $_POST['text']);

немного не то))) можно что бы еще просто http:// без www и на домены в конце?
вот что сейчас имеем -=23:20=-
[23:20]admin : {рекламма запрещена}wаr.ru/
[23:20]admin : http://site[dot]ru/
а как вообще всю ссылку убрать ? даже если напишут site.com
7. Okula - 18 Марта, 2012 - 19:00:03 - перейти к сообщению
Если без http то так можно сделать:
CODE (htmlphp):
скопировать код в буфер обмена
  1. ~(https?://)?(www\.)?[\w-]+(\.[\w-]+){1,3}/?.~isU
8. Gitya_Man - 18 Марта, 2012 - 19:38:35 - перейти к сообщению
Okula пишет:
Если без http то так можно сделать:
CODE (htmlphp):
скопировать код в буфер обмена
  1. ~(https?://)?(www\.)?[\w-]+(\.[\w-]+){1,3}/?.~isU

[00:37]admin : sitе.сом Голливудская улыбка есть же много доменных имён ))) нет чего нить универсального?
9. snikers987 - 19 Марта, 2012 - 09:38:57 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $sPost ='http://www.ili.bez.www.site.ru/ tekst http://site.ru/index.php eshe text site.com tyt ewe text http://www.best-site.ru/downloads';
  4. echo preg_replace("#(https?://)?([\w\-]+\.)*([\w\-]+\.[a-z]{2,4})/?.*(\s|$|\n)#isU", '{reklama} ', $sPost); //{reklama} tekst {reklama} eshe text {reklama} tyt ewe text {reklama}
  5.  
10. Gitya_Man - 19 Марта, 2012 - 15:16:34 - перейти к сообщению
$msg=eregi_replace("((https?|ftp|http)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&_=/%]*)?)?).(ru|org|net|info|com|tk|mobi|tv|рф)", "Реклама запрещена", $msg);
$msg=eregi_replace("([[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&_=/%]*)?)?).(ru|su|org|net|info|com|tk|mobi|tv|рф)", "Реклама запрещена", $msg);

$msg=stripslashes($msg);
$msg=htmlspecialchars($msg);
$msg=str_replace("\\","",$msg);
$msg=str_replace("/","",$msg);
$msg=str_replace("|","",$msg);
$msg=str_replace("$","",$msg);
$msg=str_replace("&","",$msg);
$msg=str_replace("<","",$msg);
$msg=str_replace(">","",$msg);
$msg=str_replace("#","",$msg);
$msg=str_replace("#","",$msg);
вот что вышло Голливудская улыбкаDD теперь норм всё
11. snikers987 - 19 Марта, 2012 - 16:44:48 - перейти к сообщению
eregi_replace() устаревшая, не стоит бездумно копировать и сети.
(Добавление)
Цитата:

(ru|su|org|net|info|com|tk|mobi|tv|рф)

это даже приблизительно не полный список доменов

 

Powered by ExBB FM 1.0 RC1