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 файл.

Есть идеи, что может быть не так?

2 ответа

Решение

Вам следует использовать расширение 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);

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

<IfModule mod_security.c>
 SecFilterScanPost
</IfModule>
Другие вопросы по тегам