2011-05-05 136 views
1

我有一個像這樣的URL http://www.url.com/cakephp/controller/action/param:1產生一個HTML頁面。curl_exec不返回任何數據

裏面一個php文件,我有:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 
    "http://www.url.com/cakephp/controller/action/param:1"); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$results=curl_exec($ch); 
echo $results." <br />"; 

這段代碼不寫任何東西,除了<br />

如果我使用其他網站,如www.google.com,它將被加載並正確顯示。我的問題是什麼?

回答

1

很可能CURL以某種方式失敗。試試這個:

$results = curl_exec($ch); 
if ($results === FALSE) { 
    die(curl_error($ch)); 
} 
echo $results . "<br />"; 

curl在失敗時返回false,所以你需要測試這種情況。

+0

沒有錯誤。但沒有打印,這是我想打印的真正鏈接:http://www.trofeocaressa.it/cakephp/matches/showMatchesBySeasonId/season_id:1 – 2011-05-05 17:46:42

1

問題是,如果您不遵守該位置(它看起來可能會重定向,因爲它是蛋糕),並且您不接受cookie,該網站就不會播放任何內容。

$cookie = tempnam ("/tmp", "CURLCOOKIE"); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_URL, "http://www.trofeocaressa.it/cakephp/matches/showMatchesBySeasonId/season_id:1"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$results=curl_exec($ch); 
echo $results." <br />"; 

這應該得到結果返回。對於將來的參考文獻Curl Manual,它有一個你可以通過它做什麼等列表。嘗試一些主要項目,如餅乾,查閱者,用戶代理等。

+0

是的,這很奇怪。我不明白爲什麼。該URL是公開的,我不是爲什麼它問我用戶和通過。爲什麼直接鏈接和捲曲調用創建2個不同的輸出? – 2011-05-05 18:52:01

0

也許你應該添加錯誤報告,如馬克說,關閉處理

(curl_close($ CH);)