Curl会自动显示结果吗?

时间:2010-04-08 00:28:28

标签: php curl

我正在使用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);
?>

我的代码有什么问题以及显示结果的原因?

2 个答案:

答案 0 :(得分:37)

默认情况下,curl扩展名会打印出结果。

您需要启用CURLOPT_RETURNTRANSFER选项,如下所示:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

启用该选项后,curl_exec将返回结果。

答案 1 :(得分:-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>";