我正在使用函数file_get_contents从网页获取内容。 一些网站运作良好,但大多数网站给我这个错误
failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable
这是我的简单代码
echo file_get_contents("url");
当我在浏览器中运行此网址时,它运行正常。可能是什么问题?
答案 0 :(得分:6)
503表示功能正在运行,您将从远程服务器获取拒绝您的响应。如果您尝试过cURL谷歌搜索结果,则会发生同样的事情,因为他们可以检测到file_get_contents和cURL使用的用户代理,从而阻止这些用户代理。您访问的服务器也可能将其IP地址划为黑名单。
主要有三个常见原因导致命令在远程情况下不像浏览器那样起作用。
1) The default USER-AGENT has been blocked.
2) Your server's IP block has been blocked.
3) Remote host has a proxy detection.
答案 1 :(得分:1)
使用此脚本,所有网站都认为您是浏览器:
<?php
$url='http://mywebsite.com'
$ch = curl_init();
$user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_DEFAULT);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$webcontent= curl_exec ($ch);
$error = curl_error($ch);
curl_close ($ch);
?>