2012-05-10 69 views
3

我想用Curl加載頁面。正如我預期的那樣,頁面加載正確。但問題是Curl打印整個內容,而不是像我想的那樣將其保存到變量中。捲曲CURLOPT_RETURNTRANSFER不按預期工作?

的代碼看起來是這樣的:

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

除初始化,這是php文件的全部內容。它不能比這更簡單,但它打印出內容並且不將它保存到變量$ result中。

我想:

curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); 

也是我嘗試了一堆其他地址,相同的結果。 我錯過了什麼嗎?

也許我必須設置另一個Curl選項,或者我必須更改我的測試服務器的一些設置?

+1

我試過你的代碼,它的工作原理應該如此。作爲一個骯髒的解決方法,您可以使用輸出緩衝(ob_start等)捕獲輸出。 – Zombaya

+0

謝謝你的快速回答。我猜這可能是一個服務器端問題,我正在使用我能找到的最簡單和可移植的web服務器(server2go),並且我已經做了一些更改,以便保留數據庫並啓用Curl。 如果有人遇到同樣的問題並且知道解決方案,我會將問題保留一段時間。否則,我會嘗試您的建議並在顯示之前捕獲輸出。 – itd

+0

你可以嘗試XAMPP,他們也有一個便攜版。也許這可能會按預期發揮作用。 – Zombaya

回答

2

在我的情況下,我是返回而不是回顯返回數據。當我重複回報值時,一切都很好。

編輯:這是一個使用jQuery的AJAX命令。

+0

你[還使用'CURLOPT_WRITEFUNCTION'](http://es1.php.net/curl_setopt#87341)? –