За последние 24 часа нас посетили 20953 программиста и 1136 роботов. Сейчас ищут 660 программистов ...

file_get_contents работает через раз. useragent?

Тема в разделе "PHP для новичков", создана пользователем shd, 11 авг 2011.

  1. shd

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

    С нами с:
    11 авг 2011
    Сообщения:
    3
    Симпатии:
    0
    Добрый день, уважаемые. Подскажите такой момент: беру некоторый контент с вики через file_get_contents, к примеру так:
    Код (Text):
    1. $value = 'Мягкая_мебель';
    2. $buf = file_get_contents('http://ru.wikipedia.org/wiki/' . $value);
    3. echo $buf;
    Так вот, срабатывает сие через раз, примерно в 30% случаев, а в остальных же дает Warning: file_get_contents(http://ru.wikipedia.org/wiki/Мягкая_мебель): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in ...

    Может ли такая беда быть из-за того, что я не отправляю useragent? По идее, без него запросы моего скрипта должны блочиться принимающим сервером, но это происходит не всегда, да и только с определенными адресами, как например выше. Если все же это происходит по вине отсутствия юзерагента, то подскажите, как отсылать его вместе с file_get_contents. Подобную инфу как то в инете не встретил.
    Использовать curl конечно можно, но хочется добить это решение. Заранее всем спасибо.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
  3. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    shd, дело в том, что некоторых страничек в википедии не существует. Поэтому выходит ошибка 403.
    Предлагаю проверить:
    $value = 'Мягкая_мебель';
    (здесь все хорошо)
    и
    $value = 'Глазовыколупывательница';
    выдает:
    Warning: file_get_contents(http://ru.wikipedia.org/wiki/Глазовыколупывательница) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in C:\Program Files\xampp\htdocs\index1.php on line 3
     
  4. shd

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

    С нами с:
    11 авг 2011
    Сообщения:
    3
    Симпатии:
    0
    Не, это я прекрасно понимаю, но ведь получал Forbidden именно по мягкой мебели. С несуществующими страничками все понятно. Кстати, useragent уже понял как отослать, и все благополучно получилось. Только вот до сих пор интересно: если дело все же было в нем, тогда почему контент с некоторых страничек все же получался?
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    shd
    ну дает он тебе пять запросов в час и потом посылает, что тут гадать-то? =)
     
  6. shd

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

    С нами с:
    11 авг 2011
    Сообщения:
    3
    Симпатии:
    0
    Ну мало ли, думал вообще при таком раскладе должен отфутболивать... да и не несколько запросов. за минут двадцать он мне выдал примерно 30% из 300 запросов, остальные forbidden
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    shd
    ахз. мало ли как у них там это реализовано.