0

我一直在寻找一段时间没有任何运气。我想知道是否可以使用 curl() 设置服务器的日期?

我目前有这个代码来登录和检索数据

    $ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $loginURL); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieFile); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieFile); 
curl_setopt ($ch, CURLOPT_REFERER, $loginURL); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postData); 
curl_setopt ($ch, CURLOPT_POST, 1); 

但有时我从服务器获取数据,认为这是另一个日期。我知道我可以使用另一个 curl“分区”通过 url 在特定日期从特定日期获取数据,但我认为只调用远程服务器一次会更快,所以是否可以设置标题或其他内容?

我特别不会这样做:欺骗服务器,我通过 CURL 调用它认为它是在未来的日子里

4

1 回答 1

0

您应该详细了解以下内容:

PHP.net setopt 手册

使用 curl,您可以使用 curl_setopt($handle, CURLOPT_HTTPHEADER, $header) 设置完整的标头。我不完全理解你在你的具体情况下试图做什么,但希望这个例子可能有用:

    $agent = 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)';
    $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    $header[] = "Cache-Control: max-age=0";
    $header[] = "Connection: keep-alive";
    $header[] = "Keep-Alive: 300";
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $header[] = "Accept-Language: en-us,en;q=0.5";
    $header[] = "Pragma: ";
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_USERAGENT, $agent);//s[array_rand($agents)]);
    curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
    $fileContents = curl_exec($ch);
    curl_close($ch);

此外,如果您正在处理多个 curl 请求,您可能会考虑由 Josh Frasier 编写的一个很棒的库,称为Rolling_Curl

于 2012-11-25T22:54:38.320 回答