2012-11-25 44 views
0

我一直在尋找一段時間沒有任何運氣。 即時通訊想知道是否有可能使用curl()設置服務器的日期?CURL通過php設置日期

我目前得到這個代碼登錄和retrive數據

$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); 

但是從,有時我的服務器即時得到數據,認爲它是另一個日期。 我知道我可以鬃毛另一個捲曲「分區」從指定的日期通過網址獲取數據,但我認爲它只是調用一次遠程服務器更快,所以如果有可能設置標頭或什麼?

我具體wonna做到這一點:欺騙服務器,我通過捲曲來電認爲這是天在未來

+1

這是不可能的,除非你的腳本有實際的時間旅行能力。沒有服務器會愚蠢到聽取客戶的信息關於什麼時候 –

回答

0

你應該在仔細一看:

PHP.net setopt Manual

使用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); 

此外,如果你正在使用多個捲曲請求的工作,你可能會考慮由Josh寫一個偉大的圖書館Frasier,名爲Rolling_Curl

+0

我會考慮圖書館的感謝。 好吧,讓我說我通過CURL聯繫服務器,我wonna欺騙此服務器認爲日期是從現在起2天 – magnuskahr

+0

@MagnusJensen哈哈,欺騙服務器認爲這是兩天後?我不想告訴你這個,但服務器告訴時間沒有問題... –

+0

好吧,我想也許有一種方法,當你也可以設置useragent – magnuskahr