详解PHP的cURL几个函数(2)

     post和json,curl_setopt_array函数不能设置CURLOPT_POSTFIELDS,CURLOPT_POST这两项
     因为我这函数没有排除,要排除,你可以自己修改这个函数

 curl_setopt_array函数,其实也就是```批量```设置curl_setopt()函数的选项,

他们的作用是一样的,我这里利用它,是为了方便

     post提交可以上传文件,但是文件的地址必须这样设置,下标为‘file’,地址前加@
     array('file' => '@D:\vhost\linuxidc\curl_setopt\xingxing.jpg')

总结:

假如上面的函数你看不懂,那不要紧,下面我给你解释一下,上面函数的主要意思:

利用curl套接流实现http提交的设置步骤:

首先:初始化curl

这对应上面的第一个步骤:

//初始化curl句柄,
$ch = curl_init();

其次:设置curl的参数,也就是设置http提交的参数,这对应上面的第二个步骤:

//把要提交的数据转换为get键值对提交
$data = http_build_query($data);
curl_setopt($ch,CURLOPT_URL,$url.'?'.$data);

http_build_query()这个函数的作用不过是把一个关联数组格式化成get方式提交的url键值对形式,这个你自己可以百度,这里不详说了。

这一步是curl设置套链接最关键的地方,你看下面的post提交和json提交就知道了:

curl_setopt($ch,CURLOPT_URL,$url);
//设置post提交
curl_setopt($ch,CURLOPT_POST,true);
//提交post的数据
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);

看到没有,设置post提交其实就是在curl_setopt函数中设置参数,

$ch 是curl_init初始化的套接流,curl_setopt函数就是不停的在这个$ch套接流中设置参数,

第一个参数:CURLOPT_URL,这是一个很关键的参数,它是设置要提交到哪里的url

第二个参数:CURLOPT_POST,设置提交的方式Post

第三个参数:CURLOPT_POSTFIELDS,设置post的提交数据

其他参数,我这里就不列举了,假如你需要参考,可以链接这里:

最后两步:

一步是:curl_exec(),这个是执行curl套接流$ch

//设置服务器返回的数据不直接输出,而是保留在curl_exec()的返回值中
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);

这里要说一下,你其实可以不设置CURLOPT_RETURNTRANSFER这个参数,假如你不设置,那么,服务器返回值将会echo出来,而不是保存在上面的$return中

另一步是:

curl_close($ch);

这个是关闭执行完成的套接流,免得它占用内存资源

再给两个函数:

curl_errno():

返回最后一次cURL操作的错误号。

curl_error():

返回一条最近一次cURL操作明确的文本的错误信息。

这两个函数可以追踪curl_init套接流的错误信息,可以根据它们来调整设置curl过程中的错误。

    至此就结束了,有问题可以留言,有错误,望请指出,假如你指出我的错误,鄙人不胜感激,个人见识短浅,错误在所难免,群众的眼睛才是雪亮的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a8dfe3af419ec643ccfc7834fea76056.html