За последние 24 часа нас посетил 21171 программист и 1632 робота. Сейчас ищут 1476 программистов ...

Поиск текста на странице

Тема в разделе "Регулярные выражения", создана пользователем VertuOzz, 17 июн 2011.

  1. VertuOzz

    VertuOzz Активный пользователь

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Доброго времени суток!
    Уважаемые знатоки, очень нужна Ваша помощь. Суть проблемы: есть скрипт, определяющий наличие сайта в каталоге Аппорт:
    PHP:
    1. {
    2. $url = str_replace("www.","",$url);
    3. $file = file_get_contents('http://sm.aport.ru/search?r=URL:'.$url.'&That=cat&Tn=6&CL=0');
    4. if(preg_match("/соответствующих\sвашему\sзапросу/",$file)){
    5. $found = "Нет";
    6. }
    7. else{
    8. $found = "Да";
    9. }
    10. return array($found);}
    По видимому, не верно написано выражение. Ваше мнение?
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    VertuOzz
    я бы посоветовал вывести текст, который ты получаешь через file_get_contents, затем уже экспериментировать с ним в коде
     
  3. VertuOzz

    VertuOzz Активный пользователь

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Так вот я получаю текст через file_get_contents Страниц, соответствующих вашему запросу "URL:domen.ru", не найдено.
    И результат-нет, другое - да
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    VertuOzz
    судя по всему, скрипт не работает - возможно дело в html, или кодировке
     
  5. VertuOzz

    VertuOzz Активный пользователь

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Подскажите, пожалуйста, как с кодировкой разобраться в этом случае?
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    VertuOzz
    у меня всё сработало как надо:

    PHP:
    1. <?php
    2.  
    3. function check_in_aport($url){
    4.   $text = file_get_contents('http://sm.aport.ru/search?r=URL:'.$url.'&That=cat&Tn=6&CL=0');
    5.   return !preg_match("#соответствующих\sвашему\sзапросу#sUi", $text);
    6. }
    7.  
    8. if(check_in_aport('dscms.ru')){
    9.   echo 'Found';
    10. } else {
    11.   echo 'Not found';
    12. }
    php файл был сохранён в кодировке windows-1251
     
  7. VertuOzz

    VertuOzz Активный пользователь

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Gromo
    Да, Ваш код работает, спасибо. Не подскажете, как мне подставить переменную $url в проверку и чтобы возвращало массив, как в моем коде?
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    return preg_match("#соответствующих\sвашему\sзапросу#sUi", $text) ? array('Нет') : array('Да');