File_get_contents

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 24 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Пытаюсь получить содержимое страницы, а получаю ошибку:

    Как можно получить содержимое страницы?
     
  2. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Для этой функции запрещено в конфигурации обращение по http адресам.
    Попробуй заменить её на Curl.
     
  3. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Честно сказать, никогда с курлом не работал.
    Подскажите пожалуйста, что надо написать, чтобы получить содержимое site.com
     
  4. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    PHP:
    $url "http://site.com"
    $ch curl_init(); 
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    $result curl_exec($ch);
    curl_close($ch);  
    echo 
    $result;  
     
    LEXAlForpostl нравится это.
  5. Fedotishe

    Fedotishe Создатель

    Регистр.:
    6 апр 2009
    Сообщения:
    10
    Симпатии:
    1
    Можно ещё попроболвать включить в конфигурационном файле в домашней директории на сервере эту возможность.
     
  6. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Ещё вопрос.
    Получаю содержимое страницы через file_get_contents в цикле фор.
    Если вдруг сайт не доступен, то цикл останавливается.
    Какую замену можно найти file_get_contents, чтобы если не получилось достучаться до сайта - пробовал получить информацию до тех пор пока операция не завершиться удачно.
     
  7. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    используй Curl, там есть параметр CURLOPT_TIMEOUT - The maximum number of seconds to allow cURL functions to execute.
    http://ua.php.net/manual/en/function.curl-setopt.php
     
  8. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Поставил timeout 12000
    Не помогло.

    Поставил условие
    PHP:
    for ($i=1;$i<30000;$i++){
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_TIMEOUT,12000);
    $test curl_exec($ch);
    curl_close($ch);  
    if (
    $test){
    выполнять парсингдобавление результатов в БД;}
    }
    Один раз может отработать отлично, другой раз на 5% отрубится. А другой раз может на 95% прекратить парсить.
    При успешном завершении скрипта должен вывести Финиш,но выводит белый экран.
     
  9. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    А скрипт по таймауту у тебя случаем в белое окно не вываливается?
     
  10. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Этот скрипт я так понял для примера приведен? Там не хватает пару строк и один и тот же урл 30000 раз качается
    действительно, попробуй поставить в самом начале
    set_time_limit(0);
    учти, что это снисает ограничения на время выполнения скрипта, и если где то ошибка может подвиснуть
    set_time_limit(600); - таймаут на 600 сек
     
Статус темы:
Закрыта.