我过去已经解决了这个问题,但我绝对不记得是怎么回事。
所以,我正在尝试使用代理将网页提取到我的服务器。
以下是代码:
function curlFile($url,$proxy_ip,$proxy_port,$loginpassw)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_VERBOSE, false);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
$data = curl_exec($ch);
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
}
print_r(curl_getinfo($ch));
print_r(curl_error($ch));
print_r($data);
curl_close($ch);
return $data;
}
目前输出的只有:
卷曲错误:无法连接到hostArray([url] => http://www.drkameleon.com [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.007872 [namelookup_time] => 0.007537 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0)无法连接到主机
那么,有什么想法吗?可能出现什么问题?
答案 0 :(得分:2)
您的网络服务器无法连接到代理
代理需要身份验证吗? (您应该从代理获得4xx响应 - 如果您已获得CLI访问权限,请尝试从命令行运行curl。)
代理在查找时获得了NXDomain,或者没有获得您期望的IP地址。
答案 1 :(得分:2)
在在线PHP平台上执行相同的脚本并查看结果。可能存在一些问题
SSL验证问题。如果您向HTTPS网站发出请求,并且您的curl库未配置为信任证书,则会出现问题。您可以下载其他网站的CA证书,并将curl库指向该方向。
如果您在大学/办公室网络上,则可能是防火墙问题。
端口配置不正确。
在线运行相同的脚本,查看[ssl_verify_result]的结果。另请参阅它所指向的HTTP代码。