Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用PHP Curl克服站点浏览器检查_Php_Curl_File Get Contents - Fatal编程技术网

无法使用PHP Curl克服站点浏览器检查

无法使用PHP Curl克服站点浏览器检查,php,curl,file-get-contents,Php,Curl,File Get Contents,我正在尝试将指定的站点保存到服务器。尝试了file\u get\u内容但没有结果,最后得到了CURL。经过一些研究和测试,结果如下: $header=array('GET /1575051 HTTP/1.1', 'Host: shakes.pro', 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language:en-US,en;q=0.8', 'Cache-Control:m

我正在尝试将指定的站点保存到服务器。尝试了file\u get\u内容但没有结果,最后得到了CURL。经过一些研究和测试,结果如下:

$header=array('GET /1575051 HTTP/1.1',
'Host: shakes.pro',
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language:en-US,en;q=0.8',
'Cache-Control:max-age=0',
'Connection:keep-alive',
'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36',
);
set_time_limit(0);
$fp = fopen ('./a.xml', 'w+');
$ch = curl_init('http://shakes.pro/');
$agent= 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36';

curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,0);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);

curl_exec($ch);
curl_close($ch);
fclose($fp);
适用于我检查过的所有其他站点,但我需要此站点:) 使用多个不同的服务器进行测试,结果相同
有什么想法吗?

如果目标站点找不到自己的cookie,它将重定向您。下面是适用于我的代码:

<?php
$header=array(
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language: en-US,en;q=0.8',
    'Cache-Control: max-age=0',
    'Connection: keep-alive',
);
$fp = fopen ('./a.xml', 'w+');
$ch = curl_init();
$agent= 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36';

curl_setopt($ch, CURLOPT_URL, 'http://shakes.pro/1575051');
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// this line added for cookies while =307
curl_setopt($ch, CURLOPT_COOKIEJAR, './a.cookiejar');

// if this line enabled, you'll get the result into $result
//curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);

$result = curl_exec($ch);
curl_close($ch);
fclose($fp);

可能是因为
set\u time\u limit
设置为0。虽然我必须说我不熟悉php上的libcurl:),但我建议该站点有循环重定向。尝试在浏览器中打开它。我没有成功的回应。如果要将其保存到CURLOPT_文件中,请删除CURLOPT_RETURNTRANSFER标志。使用set_time_limit不会产生任何结果。向导-正在浏览器中打开网站shakes.pro。删除CURLOPT_ReturnTransfer没有给出任何结果。谢谢向导,您救了我一天!工作得很有魅力!