您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php CURL post使用

2024/3/27 5:21:21发布26次查看
curl 是一个利用url语法规定来传输文件和数据的工具,支持很多协议,如http、ftp、telnet等。最爽的是,php也支持 curl 库。本文将介绍 curl 的一些高级特性,以及在php中如何运用它。
为什么要用 curl?
是的,我们可以通过其他办法获取网页内容。大多数时候,我因为想偷懒,都直接用简单的php函数:
不过,这种做法缺乏灵活性和有效的错误处理。而且,你也不能用它完成一些高难度任务比如处理coockies、验证、表单提交、文件上传等等。
引用:
curl 是一种功能强大的库,支持很多不同的协议、选项,能提供 url 请求相关的各种细节信息。
基本结构
在学习更为复杂的功能之前,先来看一下在php中建立curl请求的基本步骤:
1 初始化
2 设置变量
3 执行并获取结果
4 释放curl句柄
以下为引用的内容:
// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括url
curl_setopt($ch, curlopt_url, http://www.nettuts.com);
curl_setopt($ch, curlopt_returntransfer, 1);
curl_setopt($ch, curlopt_header, 0);
// 3. 执行并获取html文档内容
$output = curl_exec($ch);
// 4. 释放curl句柄
curl_close($ch);
检查错误
你可以加一段检查错误的语句(虽然这并不是必需的):
$output = curl_exec($ch);
if ($output === false) {
    echo curl error:  . curl_error($ch);
}
请注意,比较的时候我们用的是“=== false”,而非“== false”。因为我们得区分 空输出 和 布尔值false,后者才是真正的错误。
用post方法发送数据
当发起get请求时,数据可以通过“查询字串”(query string)传递给一个url。例如,在google中搜索时,搜索关键即为url的查询字串的一部分:
http://www.google.com/search?q=nettuts
这种情况下你可能并不需要curl来模拟。把这个url丢给“file_get_contents()”就能得到相同结果。
不过有一些html表单是用post方法提交的。这种表单提交时,数据是通过 http请求体(request body) 发送,而不是查询字串。例如,当使用codeigniter论坛的表单,无论你输入什么关键字,总是被post到如下页面:
http://codeigniter.com/forums/do_search/
你可以用php脚本来模拟这种url请求。首先,新建一个可以接受并显示post数据的文件
 'username',
    'username' => 'ybb',
    'password' => '123456',
);
$ch = curl_init();
curl_setopt($ch, curlopt_url, $url);
curl_setopt($ch, curlopt_header, 0);
curl_setopt($ch, curlopt_returntransfer, 1);
// 我们在post数据哦!
curl_setopt($ch, curlopt_post, 1);
// 把post的变量加上
curl_setopt($ch, curlopt_postfields, $post_data);
//保存cookie文件
curl_setopt($ch, curlopt_cookiejar, $cookiefile);
$output = curl_exec($ch);
//调试使用
if ($output === false) {
    echo curl error:  . curl_error($ch);
}
curl_close($ch);
//进出到发贴页面
$post_url = 'http://dx/forum.php?mod=post&action=newthread&fid=2';
$ch = curl_init($post_url);
curl_setopt($ch, curlopt_header, 0);
curl_setopt($ch, curlopt_returntransfer, 1);
//读取cookie 文件
curl_setopt($ch, curlopt_cookiefile, $cookiefile);
echo $data = curl_exec($ch);
curl_close($ch);
?>
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product