加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中curl使用指南

发布时间:2020-12-13 02:23:43 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:php中curl使用指南》要点: 本文介绍了PHP实例:php中curl使用指南,希望对您有用。如果有疑问,可以联系我们。 许多同学在第一次使用curl的时候感觉一个头两个大(包括我在内),看着这一条条的curl_setopt函数完全摸不着头脑,不过在你花10分钟看了

《PHP实例:php中curl使用指南》要点:
本文介绍了PHP实例:php中curl使用指南,希望对您有用。如果有疑问,可以联系我们。

许多同学在第一次使用curl的时候感觉一个头两个大(包括我在内),看着这一条条的curl_setopt函数完全摸不着头脑,不过在你花10分钟看了我的介绍后相信你以后也能轻松戏耍php的curl了PHP应用

首先,请看一个curl代码(花10秒钟,略看一遍,然后跳到后文)

代码如下:

<?php
$data = "<soap:Envelope>[...]</soap:Envelope>";
$tuCurl = curl_init();
curl_setopt($tuCurl,CURLOPT_URL,"https://example.com/path/for/soap/url/");
curl_setopt($tuCurl,CURLOPT_PORT,443);
curl_setopt($tuCurl,CURLOPT_VERBOSE,0);
curl_setopt($tuCurl,CURLOPT_HEADER,CURLOPT_SSLVERSION,3);
curl_setopt($tuCurl,CURLOPT_SSLCERT,getcwd() . "/client.pem");
curl_setopt($tuCurl,CURLOPT_SSLKEY,getcwd() . "/keyout.pem");
curl_setopt($tuCurl,CURLOPT_CAINFO,getcwd() . "/ca.pem");
curl_setopt($tuCurl,CURLOPT_POST,1);
curl_setopt($tuCurl,CURLOPT_SSL_VERIFYPEER,CURLOPT_RETURNTRANSFER,CURLOPT_POSTFIELDS,$data);
curl_setopt($tuCurl,CURLOPT_HTTPHEADER,array("Content-Type: text/xml","SOAPAction: "/soap/action/query"","Content-length: ".strlen($data)));
$tuData = curl_exec($tuCurl);
if(!curl_errno($tuCurl)){
? $info = curl_getinfo($tuCurl);
? echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
} else {
? echo 'Curl error: ' . curl_error($tuCurl);
}
curl_close($tuCurl);
echo $tuData;
?>

WTF,这到底是在做什么?

想要学会这种“高端”的用法吗?

首先,相信你肯定知道网址大部分是由http开头的,那是因为他们需用通过http(超文本传送协议 HTTP-Hypertext transfer protocol)来进行数据传输,但是传输数据不是简单的将一句"Hello"传到服务器上就搞定的事情,发送者为了方便接受者理解发送者的实际意图以及知道发送人到底是何许人也,发送者往往要将许多额外信息一并发给接受者,就像寄信人需要在信件外套一个信封一样,信封上写着各种发信人的信息.所有的这些最终合并成了一个叫做报文(message)的玩意,也就构成了整个互联网的基础.

curl的工作就是通过http协议发送这些message (php的libcurl目前还支持https、ftp、telnet等其他协议)

现在再看代码,实际上代码只做了五件事情

curl_init()初始化curl
curl_setopt()设置传输数据和参数
curl_exec()执行传输并获取返回数据
curl_errono()返回错误码
curl_close()关闭curl
下面给出使用GET和POST方法如何抓取和提交任意页面的数据

代码如下:

<?php
??? //初始化
??? $curl = curl_init();
??? //设置url
??? curl_setopt($curl,'http://www.baidu.com');
??? //设置返回获取的输出为文本流
??? curl_setopt($curl,true);
??? //执行命令
??? $data = curl_exec($curl);
??? //关闭URL哀求
??? curl_close($curl);
??? //显示获得的数据
??? print_r($data);
?>
<?php
??? //初始化
??? $curl = curl_init();
??? //设置url
??? curl_setopt($curl,true);
??? //设置post方式提交
??? curl_setopt($curl,1);
??? //设置post数据
??? curl_setopt($curl,array("data"=>"value");
??? //执行命令
??? $data = curl_exec($curl);
??? //关闭URL哀求
??? curl_close($curl);
??? //打印数据
??? print_r($data);
?>

感兴趣的同学还可以参考php官方文档,学习更多curl用法

编程之家培训学院每天发布《PHP实例:php中curl使用指南》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读