我使用curl获取我网站的信息。到目前为止,这适用于以下PHP代码:
$options = array(
CURLOPT_URL => $url,
CURLOPT_HTTPGET => true,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4 ,
CURLOPT_PROXYTYPE => 7,
CURLOPT_COOKIEJAR => "session/cookie1.txt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLINFO_HEADER_OUT => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_COOKIE => $cookiesIn,
CURLOPT_VERBOSE => true,
CURLOPT_PROXY => $proxyIP,
CURLOPT_PROXYPORT => $proxyPORT,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPPROXYTUNNEL => false,
CURLOPT_DNS_CACHE_TIMEOUT => 2
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$rough_content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
它一直有效,但由于我在customrequest中添加了GET参数,因此我无法在服务器上获得任何结果(Win2008)。在服务器上运行它不会导致错误或任何消息。它只是被无限制地执行(因为我希望得到一个有用的错误消息,所以有几页正在运行)。在笔记本电脑上运行时,根本没有问题,可以检索所有信息。
有谁知道哪个参数导致问题?它不能代理服务器,因为它在我的笔记本电脑上正常工作。所以我想这是一个DNS问题,但我不知道是什么导致了这个问题,或者我怎么能避免它。