Kri*_*han 0 php fopen file-get-contents
作为要求的一部分,我需要找出域是否停放.由于没有有效的方法可以找到这个,我将检查DOM的"购买此域名","可能是出售"等短语.
我找到了一些可以通过浏览器访问的停放域名,但无法使用它们file_get_contents.
例
$url = 'http://buythisdomain.com/'
$get = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)
对于上面的输出得到以下消息.
警告:file_get_contents(http://buythisdomain.com/):无法打开流:HTTP请求失败!
但是能够通过浏览器访问相同的URL.我也尝试了fopen方法,但结果相同.有没有办法实现这个目标?
许多站点,不仅停放域使用某种机制来阻止没有有效浏览器头的基本请求.
尝试使用流式上下文,像这样的浏览器发送所需的标头
$url = "http://buythisdomain.com/"
$context = stream_context_create(array(
'http' => array(
'method' => "GET",
'header' =>
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" .
"Accept-Language: en-US,en;q=0.8\r\n".
"Keep-Alive: timeout=3, max=10\r\n",
"Connection: keep-alive",
'user_agent' => "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11",
"ignore_errors" => true,
"timeout" => 3
)
));
file_get_contents($url, false, $context);
Run Code Online (Sandbox Code Playgroud)