我希望你能帮助我。 该网站目前在线,我可以访问它,我似乎无法理解为什么这不起作用。
file_get_contents()
和fopen()
返回错误说明以下内容:
PHP Warning: file_get_contents(http://www.hackforums.net): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /host/Users/Phizo/Desktop/stalker.php on line 29
现在我刚刚开始接受cURL,因为我想试试这个403,也没有运气。
$handle = curl_init();
$file = fopen('source.txt', 'w');
curl_setopt($handle, CURLOPT_URL, 'http://www.hackforums.net/');
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_AUTOREFERER, true);
curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1');
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($handle, CURLOPT_FILE, $file);
curl_exec($handle);
print_r(curl_getinfo($handle));
curl_close($handle);
fclose($file);
输出以下错误:
Fatal error: Maximum execution time of 30 seconds exceeded in D:\Hosting\6514439\html\zeonsglobal\admin\press_uploads\stalker.php on line 29
答案 0 :(得分:3)
此代码适用于我,您无需执行自定义请求即可实现所需。
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, 'http://www.hackforums.net/');
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1');
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($handle);
var_dump($result);
curl_close($handle);
你获得403的可能原因是因为fopen正在传递的用户代理。如果从curl请求中删除用户代理,则还会收到403错误。
我添加了curl选项CURLOPT_RETURNTRANSFER
,因此当您调用curl_exec()
时,它会以字符串形式返回响应。
希望有所帮助。