2010-04-08 82 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>";