您的位置:首页 > 编程语言 > PHP开发

php中利用curl进行post请求示例

2015-03-07 09:37 183 查看
工作中需要使用curl的POST请求来向第三方服务器获取数据, 下面是php版本的实现代码,以作备忘.

<?php
$url = "http://hao.qq.com/lunbo/switch.php";
$data = array("code"=>"find_wonder");

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
curl_setopt($ch, CURLOPT_ENCODING, ""); //必须解压缩防止乱码
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; zh-CN) AppleWebKit/535.12 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/535.12");
curl_setopt($ch, CURLOPT_TIMEOUT, 15);

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

print_r($output);
?>


这里需要注意的地方是, hao.qq.com返回的数据是gzip和chunk发送的, 必须启用curl的自动解压缩功能来得到解压后的数据, 否则会导致乱码.

将上面的源码文件记为curl_post.php, 在命令行执行

php curl_post.php

下面是获取的结果示例



上面的实例是,向hao.qq.com发送POST请求来获取指定的代码片段, 它是div和script代码片段的混合体, 会生成类似如下的页面效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: