2011-09-25 26 views
0

當試圖獲取特定域的內容時,PHP Curl不起作用。當試圖獲取特定域的內容時,PHP Curl不起作用

特定的域名是'www.net4winners.com.br',它適用於每個域,但不與該域一起使用,它始終返回:在curl輸出中找不到'object'。

這個測試的PHP代碼:

<?php 
function run_curl($url,$p=null) 
    { 
     $ch = curl_init(); 
     $options = array(
     CURLOPT_URL => $url, 
     CURLOPT_HEADER => 0, 
     CURLOPT_SSL_VERIFYHOST => 0, 
     CURLOPT_SSL_VERIFYPEER => 0, 
     CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)", 
     CURLOPT_RETURNTRANSFER => 1, 
     CURLOPT_FOLLOWLOCATION => 1 
     ); 
     if($p != null) 
     { 
      $options[CURLOPT_CUSTOMREQUEST] = "POST"; 
      $options[CURLOPT_POST] = 1; 
      $options[CURLOPT_POSTFIELDS] = $p; 
     } 

     curl_setopt_array($ch,$options); 

     $resultado = curl_exec($ch); 

     if($resultado) { return $resultado; } else { return curl_error($ch); } 

     curl_close($ch); 
    } 
    $out = run_curl('http://www.net4winners.com.br/'); 
    echo $out; 
?> 

可能有人幫助我嗎?

謝謝。

+0

沒問題,運行腳本我連接上。 – Scuzzy

+0

如果我在我的連接上運行它,但是如果我把它放在locaweb服務器中,它將無法工作,但它只發生在這個域'net4.com.br'。 – user964104

+0

那麼,如果它爲你工作,你的問題是什麼?你能夠在瀏覽器中成功訪問這個'locaweb服務器'嗎? – phindmarsh

回答

1

它不起作用,因爲服務器正在檢查是否存在某些未由cURL發送的標頭。根據我的測試,您的案例中缺少的是Accept-Language

嘗試添加以下到您的$options陣列:

CURLOPT_HTTPHEADER => array('Accept-Language: en-us') 

例子:

<?php 

$ch = curl_init('http://www.net4winners.com.br/'); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept-Language: en-us' 
)); 
curl_exec($ch); 
+0

它沒有幫助,但現在我收到此錯誤:腳本「/home/httpd/html/index.php」的內部服務器錯誤UID小於min_uid suPHP 0.6.3 – user964104

+0

該錯誤聽起來不相關。在你的服務器上出現這個錯誤,或者是你從cURL中得到的東西?如果它在您的服務器上,請確保該文件由正確的用戶所有。聽起來像是一個許可問題。 –

+0

是的,我是從捲曲輸出滾動它 – user964104