File_get_contents() не удалось открыть поток:

Я пытаюсь использовать file_get_contents() для захвата фида Twitter, но я получаю следующее предупреждение:

failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request

Мой код:

$feed = 'http://twitter.com/statuses/user_timeline.rss?screen_name=google&count=6';
$tweets = file_get_contents($feed);

Я использую Google только для тестирования. allow_url_fopen включен в моем файле php.ini.

Любая идея, что может быть неправильным?

Ответы

Ответ 1

Вы должны использовать расширение PHP cURL, если оно доступно, так как оно во много раз быстрее, более мощное и более легкое для отладки. Вот пример, который делает то же самое, что вы пытались:

function curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

$feed = 'http://twitter.com/statuses/user_timeline.rss?screen_name=google&count=6';
$tweets = curl($feed);

Ответ 2

Скорее всего, ваш сервер имеет mod_security. Добавьте ниже строки в свой .htaccess после любых существующих правил, а затем попытайтесь увидеть, что проблема все еще существует после этого добавления.

<IfModule mod_security.c>
 SecFilterScanPost
</IfModule>