Я пытаюсь использовать 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
.
Любая идея, что может быть неправильным?
Вы должны использовать расширение 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>