我使用此代码打印页面内容(同时传递POST
和COOKIE
)。但它给了额外的" 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
答案 0 :(得分:3)
来自http://us2.php.net/curl_exec
成功时返回TRUE,失败时返回FALSE。但是,如果 设置CURLOPT_RETURNTRANSFER选项后,它将返回结果 成功,失败就错了。
所以你需要设置CURLOPT_RETURNTRANSFER
以从curl_exec
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);