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

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

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

 

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

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

тема: антирекламма
 
 автор: 31   (30.07.2006 в 04:19)   письмо автору
 
 

пишу скрипт гостевой книги. И вообщем я хочу сделать при помощи регулярки запрет рекламы конструкторных сайтов типо narod.ru boom.ru wen.ru kmx.ru ну вобщем допустим если кто-нибудь напишет сайт site.narod.ru мне нужно заменялось не например site.antireklama а просто antireklama.такое возможно? скрипт на php

   
 
 автор: Владимир22   (30.07.2006 в 05:08)   письмо автору
 
   для: 31   (30.07.2006 в 04:19)
 


$site="тра-та-та.narod.ru";
if (substr($site,-8) == "narod.ru" || substr($site,-7) =="boom.ru");
$site="антиреклама";
echo "$site"; \\ это вам для проверки

   
 
 автор: cheops   (30.07.2006 в 11:40)   письмо автору
 
   для: 31   (30.07.2006 в 04:19)
 

Тут не нужно использовать регулярные выражения, просто пишите что-то в духе
<?php
    
if(strpos($msg,"narod.ru"))  exit();
?>

   
 
 автор: beng-beng   (30.07.2006 в 21:05)   письмо автору
 
   для: 31   (30.07.2006 в 04:19)
 


<?
$anti 
= array('narod.ru''boom.ru''wen.ru''kmx.ru');    // список "плохих" доменов

$site 'my.site.kmx.ru';    // сайт

foreach ($anti as $k => $v) {
    if (
strpos($site$v)) {
        
$site 'antireklama';
        break;
    }
}

echo 
$site;    // итоговое имя
?>


Необходимо только в начале заполнить массив "плохих" доменов

   
 
 автор: 31   (31.07.2006 в 01:08)   письмо автору
 
   для: beng-beng   (30.07.2006 в 21:05)
 

Спасибо

   
 
 автор: 31   (31.07.2006 в 01:23)   письмо автору
 
   для: beng-beng   (30.07.2006 в 21:05)
 

вот тока не пойму переменную $anti нужно заменять на свою или нет?

   
 
 автор: 31   (31.07.2006 в 01:29)   письмо автору
 
   для: 31   (31.07.2006 в 01:23)
 

я просто использую вот так

function antissylka($s) {  
$s = str_replace("wen.ru","",$s);
$s = str_replace("wab.ru","???",$s);
$s = str_replace("kmx.ru","???",$s);
return $s; }
ob_start("antissylka");

например если пользователь напишет сайт site.wen.ru то будет так site.??? а как сделать например чтобы ссылка полностью вырезалась, или лучше мой сайт был бы написан...

   
 
 автор: beng-beng   (31.07.2006 в 10:22)   письмо автору
 
   для: 31   (31.07.2006 в 01:23)
 

В этот массив просто забить список "плохих" доменов
$anti = array('narod.ru', 'boom.ru', 'wen.ru', 'kmx.ru', 'домен_3', 'домен_4', 'домен_N')


Можно оформить как функцию:


<?
function antissylka($s
{  
$anti = array('narod.ru''boom.ru''wen.ru''kmx.ru');    // список "плохих" доменов

foreach ($anti as $k => $v) {
    if (
strpos($s$v)) {
        
$s 'antireklama';
        break;
    }
}

return 
$s
}
?>

   
 
 автор: 31   (31.07.2006 в 17:13)   письмо автору
 
   для: beng-beng   (31.07.2006 в 10:22)
 

Что не получается.все-таки регулярные выражение это сложный процесс их реализации
А как можно

$s = str_replace("narod.ru","???",$s);

сделать чтобы когда пользователь добавил к примеру сайт site.narod.ru вырезались только само имя т.е site, а а сомо даомен вместо трех вопросов заменю на свой сайт.....Это возможно?

   
Rambler's Top100
вверх

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