PHP Curl打印出额外的字符

时间:2014-06-27 20:19:43

标签: php curl

我使用此代码打印页面内容(同时传递POSTCOOKIE)。但它给了额外的" 1"在内容的最后。

PHP代码

function file_get_contents_curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    $fields = array( );

    $fields_string = '';
    $post_count =0;
    foreach($_POST as $key=>$value){
        $fields_string .= $key.'='.$value.'&';
    }
    $fields_string .= 'fb_app=1';
    curl_setopt($ch,CURLOPT_POST, count($_POST)+1 );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string );

    $cookie_string="";
    foreach( $_COOKIE as $key => $value )   $cookie_string .= "$key=$value;";
    curl_setopt($ch,CURLOPT_COOKIE, $cookie_string);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}
echo file_get_contents_curl('http://example.com/my_page/');

输出

<!DOCTYPE html>
<html lang="en">
    <head>
    </head>
    <body>
        <p>Hello world.</p>
    </body>
</html>
1

1 个答案:

答案 0 :(得分:3)

来自http://us2.php.net/curl_exec

  

成功时返回TRUE,失败时返回FALSE。但是,如果   设置CURLOPT_RETURNTRANSFER选项后,它将返回结果   成功,失败就错了。

所以你需要设置CURLOPT_RETURNTRANSFER以从curl_exec

返回html(而不是true,打印为1)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);