首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >显示"1“的cURL和PHP

显示"1“的cURL和PHP
EN

Stack Overflow用户
提问于 2012-06-06 14:12:07
回答 5查看 21.1K关注 0票数 28

我有一个PHP脚本,我想用它从数据库中读取服务器,并使用cURL连接到它们。服务器使用sql查询的结果进行响应。问题是服务器每次响应后的脚本都会显示数字1。输出结果如下:

服务器1:一些结果

1Server 2:一些结果

1Server 3:一些结果

1

下面是从数据库中读取服务器并连接到它们的代码:

代码语言:javascript
复制
<?php

$mysql_id = mysql_connect('localhost', 'ms', 'pass');
mysql_select_db('servers', $mysql_id);
mysql_query("SET NAMES utf8");

$query = "SELECT * FROM svr";
$result = mysql_query($query);
$num = mysql_num_rows($result);
while ($data = mysql_fetch_assoc($result))
{
    $server[] = $data;
}

mysql_close($mysql_id);

$i = 0;
while($i < $num) {
    $dealer = $server[$i]['dealer'];

    echo $dealer . "<br />";

    $data = "val=a"; //just for testing                                                                    

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                                                                                                       
        'Content-Type: text/html; charset=utf-8')                                                                       
    );                                                                                                                                                                                   

    $result = curl_exec($ch);
    echo $result;
    $i++;
}

?>

我发现1显示为"echo $result;“,用于创建响应的代码如下:

代码语言:javascript
复制
<?php

$mysql_id1 = mysql_connect('localhost', 'ms', 'pass');
mysql_select_db('servers', $mysql_id1);
mysql_query("SET NAMES utf8");

    $query2 = "SELECT * FROM data";
    $result2 = mysql_query($query2);
    $num2 = mysql_num_rows($result2);
    while ($data2 = mysql_fetch_assoc($result2))
    {
        $deli[] = $data2;
    }
    $i1 = 0;
    $space = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    while ($i1 < $num2) {
        echo $space . $deli[$i1]['id'] . " ";
        echo $deli[$i1]['artikel'] . " ";
        echo $deli[$i1]['znamka'] . " ";
        echo $deli[$i1]['model'] . " ";
        echo $deli[$i1]['letnik'] . " ";
        echo $deli[$i1]['cena'] . " € ";
        echo $deli[$i1]['zaloga'] . "<br />";
        $i1++;
    }
    echo "<br />";
    mysql_close($mysql_id1);
?>

请帮帮我

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-06 14:14:18

使用CURLOPT_RETURNTRANSFER选项。否则,cURL将自动回显数据并仅返回true (由echo转换为1 )。

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

PHP.net说,

为TRUE,则将传输作为curl_exec()的返回值的字符串返回,而不是直接输出。

票数 67
EN

Stack Overflow用户

发布于 2012-06-06 14:14:31

您需要使用CURLOPT_RETURNTRANSFEcurl_exec返回状态码并将响应发送到标准输出:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
票数 9
EN

Stack Overflow用户

发布于 2015-07-15 19:25:55

CURLOPT_RETURNTRANSFER应为TRUE,以将传输作为curl_exec()返回值的字符串返回,而不是将其输出到完整的文档php.net

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

或者你可以这样做

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10909002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档