2010-04-08 107 views
18

我正在使用php 5.3.2,當我執行一個curl時,它直接顯示結果而不添加打印或回顯函數。捲曲自動顯示結果?

這裏是我的代碼:

<?php 
$pvars = array('query' => 'ice age', 'orderby' => 'popularity'); 
$timeout = 30; 
$myurl = "http://www.website.com"; 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $myurl); 
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars); 
$xml = curl_exec($curl); 
curl_close ($curl); 
?> 

這有什麼錯我的代碼,爲什麼它顯示的結果呢?

回答

34

默認情況下,curl擴展名輸出結果。

您需要啓用CURLOPT_RETURNTRANSFER選項,就像這樣:該選項啓用

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

後,curl_exec將返回的結果,而不是。

+0

感謝布賴恩;) – Emily 2010-04-08 18:24:26

+1

「從PHP 5.1.3,這個選項不起作用:CURLOPT_RETURNTRANSFER時使用的原始輸出將始終返回」。 – Mawg 2014-05-29 16:48:47

-1

php 5.1 curl總是顯示結果,你可以查看文檔。避免簡單地做:

echo "< span style='display:none'>"; 
$pvars = array('query' => 'ice age', 'orderby' => 'popularity'); 
$timeout = 30; 
$myurl = "http://www.website.com"; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $myurl); 
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars); 
$xml = curl_exec($curl); 
curl_close ($curl); 

echo"< /span>";