curl - 自主测试curl ¶
作者:KK
发表日期:2017.3.3
在test主机站点下建立a b两个测试脚本进行自测 ¶
curl在我接触过的PHP程序员中95%的人都会不时要为了项目需求而使用curl的各种请求处理方法来构造最终的请求
于是大家都会不断地找资料、重复测试
这里我希望可以引导新手程序员学会方便地自己建立测试
有些菜鸟是这么以为的:curl就是A站向B站发一个请求,得到B站的响应数据后做过滤处理再储存什么的
基本没错,但实际上不是A站向B站发一个请求,而是A向B地址发一个请求,不解释太多,先根据下面步骤进行试验:
在一个测试网站下建立
a.php
(比如自己建立http://test这个测试站)代码如下:
$url = 'http://' . $_SERVER['SERVER_NAME'] . '/b.php?age=99'; //URL指向 自己这个站点下的b.php $curlHandler = curl_init(); //初始化一个curl句柄 curl_setopt($curlHandler, CURLOPT_URL, $url); curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, 1); echo curl_exec($curlHandler); curl_close($curlHandler);
再在这个测试站下建立
b.php
代码:echo '岁数是:' . $_GET['age'];
访问http://test/a.php好了应该就能看到b.php的输出了
看上去挺简单的事,但有些新手会专门建立test1和test2两个站点进行测试,其实大部分情况下根本没有这个必要,学会在一个测试站下建立两个脚本来测试就行
因为本质上,curl就是在一个地方(比如a.php)向另一个地址进行请求,这个地址只要是http协议的地址就能接收请求,根本不在乎于它是不是另一个站点,所以自己站点的脚本请求自己站点也是一次http请求
为什么我不说是A站向B站请求
呢 ¶
我说是A向B站请求,其实A不是一个站,所谓curl你可以理解为就是一个发起网络请求的函数代码库
用到网络请求的还有平时我们接触的腾讯新闻面板、各种软件的广告新闻面板等,那这些软件它们并不是一个网址,实质上你可以理解为:它们使用了curl函数库这类东西往一个http地址获取了数据,再将数据解析成有结构的数组或对象后,呈现到客户端的UI界面上了