curl - 自主测试curl

  • 作者:KK

  • 发表日期:2017.3.3


在test主机站点下建立a b两个测试脚本进行自测

curl在我接触过的PHP程序员中95%的人都会不时要为了项目需求而使用curl的各种请求处理方法来构造最终的请求

于是大家都会不断地找资料、重复测试

这里我希望可以引导新手程序员学会方便地自己建立测试

有些菜鸟是这么以为的:curl就是A站向B站发一个请求,得到B站的响应数据后做过滤处理再储存什么的

基本没错,但实际上不是A站向B站发一个请求,而是A向B地址发一个请求,不解释太多,先根据下面步骤进行试验:

  1. 在一个测试网站下建立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);
    

  2. 再在这个测试站下建立b.php代码:

    echo '岁数是:' . $_GET['age'];
    

  3. 访问http://test/a.php好了应该就能看到b.php的输出了


看上去挺简单的事,但有些新手会专门建立test1和test2两个站点进行测试,其实大部分情况下根本没有这个必要,学会在一个测试站下建立两个脚本来测试就行

因为本质上,curl就是在一个地方(比如a.php)向另一个地址进行请求,这个地址只要是http协议的地址就能接收请求,根本不在乎于它是不是另一个站点,所以自己站点的脚本请求自己站点也是一次http请求


为什么我不说是A站向B站请求

我说是A向B站请求,其实A不是一个站,所谓curl你可以理解为就是一个发起网络请求的函数代码库

用到网络请求的还有平时我们接触的腾讯新闻面板、各种软件的广告新闻面板等,那这些软件它们并不是一个网址,实质上你可以理解为:它们使用了curl函数库这类东西往一个http地址获取了数据,再将数据解析成有结构的数组或对象后,呈现到客户端的UI界面上了