Если значение не найдено, сменить значение переменной

Тема в разделе "Как сделать...", создана пользователем bork75, 29 ноя 2014.

  1. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Скрипт - простой парсер, ищем в коде условие.
    Если на странице не найдено условие, то нужно сменить адрес url

    Пример для исправления
    PHP:
    $url 'http://sait.ru/';

    $text file_get_contents($url);
    if (
    preg_match('/<div style=(.*?)&amp;height=/is'$text$content));

    else {

    $url ='http://sait2.ru/';

    }

    echo 
    $content[1];
     
    Последнее редактирование: 3 дек 2014
  2. qpPeW

    qpPeW Постоялец

    Регистр.:
    5 окт 2009
    Сообщения:
    80
    Симпатии:
    31
    preg_match не выводит результат, потому всегда будет выполнять $url ='http://sait2.ru/', Вам нужно в if сделать проверку переменной $content.
     
  3. ev-goo

    ev-goo Создатель

    Регистр.:
    28 май 2012
    Сообщения:
    10
    Симпатии:
    9
    preg_match возвращает true если совпадения найдены и false если нет. В переменную $content сохраняется совпадение. По большому счету можно проверять переменную $content, но и
    PHP:
    if (preg_match('/<div style=(.*?)&amp;height=/is'$text$content));
    вполне рабочая проверка
     
  4. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Проверка "если, то" выполняется, как мне сменить адрес сайта url= и для этого сайта уже делать парсинг?
    Простой пример ведь.

    Вот типа так должно работать

    PHP:
    $url 'http://sait.ru/';

    $text file_get_contents($url);
    if (
    preg_match('/<div style=(.*?)&amp;height=/is'$text$content));

    else {

    $url ='http://sait2.ru/';

    $text file_get_contents($url);
    preg_match('/<div style=(.*?)&amp;height=/is'$text$content);

    }

    echo 
    $content[1];
     
    Последнее редактирование: 3 дек 2014
  5. zaxap83

    zaxap83 Постоялец

    Регистр.:
    6 дек 2010
    Сообщения:
    87
    Симпатии:
    28
    Тогда корректнее будет так:
    PHP:
    function check($url)
       {
         
    $text file_get_contents($url);
         if (
    preg_match('/<div style=(.*?)&amp;height=/is'$text$content))   return $content[1];
         else   return 
    false;
       }

    $url 'http://sait.ru/';
    $url2 'http://sait2.ru/';

    if(
    $out check($url)) echo $out;
    else echo 
    check($url2);