日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

CURL是一個(gè)非常強(qiáng)大的開源庫,它支持很多種協(xié)議,例如,HTTP、HTTPS、FTP、TELENT等。日常開發(fā)中,我們經(jīng)常會(huì)需要用到curl向其他系統(tǒng)api訪問。

使用

要想使用CURL,大致需要如下流程:

  1. 初始化CURL句柄
  2. 設(shè)置選項(xiàng)
  3. 執(zhí)行并獲取結(jié)果
  4. 釋放CURL句柄

參見如下示例:

<?php
$ch = curl_init();
 
curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 
$output = curl_exec($ch);
if($output === FALSE ){
  echo "error:".curl_error($ch);
}
 
curl_close($ch);
 
 
echo $output;

在上面的代碼中,我們使用curl_init函數(shù)來初始化curl句柄,然后多次調(diào)用curl_setopt函數(shù)來設(shè)置多個(gè)選項(xiàng),隨后我們調(diào)用curl_exec函數(shù)執(zhí)行發(fā)送HTTP請(qǐng)求并從遠(yuǎn)端接收相應(yīng)數(shù)據(jù),最終我們調(diào)用curl_close關(guān)閉curl句柄進(jìn)行資源釋放。

運(yùn)行這段代碼,我們可以看到控制臺(tái)下,會(huì)輸出百度的頁面信息。

對(duì)于選項(xiàng)部分:

  • CURLOPT_URL——設(shè)置請(qǐng)求的url及其使用的協(xié)議;
  • CURLOPT_RETURNTRANSFER——設(shè)置為1,表示返回的響應(yīng)數(shù)據(jù)不會(huì)被從標(biāo)準(zhǔn)輸出輸出,而是作為返回值傳遞給output變量;否則,返回內(nèi)容會(huì)被直接輸出到標(biāo)準(zhǔn)輸出,而返回值是錯(cuò)誤號(hào);

以上我們就完成了一個(gè)簡(jiǎn)單的CURL使用。

 


下面我們看看如何設(shè)置GET和POST請(qǐng)求:

Get請(qǐng)求

其實(shí)我們上面的例子就是get請(qǐng)求,如果需要用到請(qǐng)求參數(shù),可以直接在設(shè)置CURLOPT_URL選項(xiàng)時(shí)帶上請(qǐng)求參數(shù)。如下增加了一個(gè)hi參數(shù),其值為hello:

curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com?hi=hello");

Post請(qǐng)求

對(duì)于POST請(qǐng)求,我們對(duì)最開始的例子做一些修改即可,代碼如下:

curl_setopt($ch,CURLOPT_URL,"http://127.0.0.1/");
curl_setopt($ch, CURLOPT_POSTFIELDS, 'hello=world');
curl_setopt($ch, CURLOPT_POST, true);

首先,我們將CURLOPT_URL選項(xiàng)的url改為本地環(huán)回地址的80端口。

其次,我們加入了CURLOPT_POSTFIELDS來設(shè)置post請(qǐng)求中參數(shù)字段。

最后,我們?cè)O(shè)置CURLOPT_POST選項(xiàng)為true,表示我們將發(fā)送一個(gè)POST類型請(qǐng)求。

curl_setopt函數(shù)的第二個(gè)參數(shù)種類非常多,可以參考php官方站點(diǎn)中curl_getinfo函數(shù)的opt參數(shù)內(nèi)容,在需要時(shí)進(jìn)行設(shè)置。

下面,我們?cè)诒镜貑⒂胣c來監(jiān)聽80端口,這樣可以看到curl發(fā)來的請(qǐng)求,以驗(yàn)證結(jié)果:

curl_setopt函數(shù)的第二個(gè)參數(shù)種類非常多,可以參考php官方站點(diǎn)中curl_getinfo函數(shù)的opt參數(shù)內(nèi)容,在需要時(shí)進(jìn)行設(shè)置。$ nc -l 80
POST / HTTP/1.1
Host: 127.0.0.1
Accept: */*
Content-Length: 11
Content-Type: Application/x-www-form-urlencoded
 
hello=world

可以看到,nc中收到php發(fā)來的請(qǐng)求是POST請(qǐng)求,且我們的post參數(shù)在請(qǐng)求體中,并且請(qǐng)求頭部也加入了content-相關(guān)字段指定數(shù)據(jù)大小和類型等。

 


下面,我們?cè)賮砜纯碿url還能夠給我們哪些有用信息。

獲取請(qǐng)求響應(yīng)的相關(guān)信息

利用curl_getinfo函數(shù),我們可以獲取更多的與請(qǐng)求和響應(yīng)相關(guān)的信息。只需要在curl_exec之后執(zhí)行如下調(diào)用:

$info = curl_getinfo($ch);

我們可以看下info都包含些什么,以前面的例子為例,我們?nèi)サ糇詈蟮膃cho,然后在curl_exec后加入:

$info = curl_getinfo($ch);
foreach ($info as $k => $v) {
    echo $k.": ".$v."n";
}

輸出信息如下:

url: http://www.baidu.com/      #網(wǎng)絡(luò)地址
content_type: text/html         #響應(yīng)數(shù)據(jù)類型
http_code: 200                  #http響應(yīng)碼
header_size: 750                #響應(yīng)頭大小
request_size: 52                #請(qǐng)求大小
filetime: -1                    #文件創(chuàng)建的時(shí)間
ssl_verify_result: 0            #SSL驗(yàn)證結(jié)果
redirect_count: 0               #跳轉(zhuǎn)計(jì)數(shù)
total_time: 0.028716            #總耗時(shí)
namelookup_time: 0.004372       #DNS查詢耗時(shí)
connect_time: 0.019615          #等待連接耗時(shí)
pretransfer_time: 0.019732      #傳輸前準(zhǔn)備耗時(shí)
size_upload: 0                  #上傳數(shù)據(jù)大小
size_download: 14613            #下載數(shù)據(jù)大小
speed_download: 508880          #下載速度
speed_upload: 0                 #上傳速度
download_content_length: 14613  #下載內(nèi)容長(zhǎng)度
upload_content_length: -1       #上傳內(nèi)容長(zhǎng)度
starttransfer_time: 0.027137    #直到首字節(jié)傳輸開始的耗時(shí)
redirect_time: 0                #重定向耗時(shí)
redirect_url:                   #重定向url
primary_ip: 119.75.216.20       #DNS解析后首選地址
certinfo: Array                 #TLS的證書鏈
primary_port: 80                #遠(yuǎn)端端口
local_ip: 192.168.1.xxx         #本地ip
local_port: 51210               #本地端口

這里,碼哥對(duì)字段做了標(biāo)注。可以看到,不僅可以獲取基本的響應(yīng)信息,還可以獲取公網(wǎng)地址、網(wǎng)速、耗時(shí)等信息。

 

以上就是curl的簡(jiǎn)單使用。

分享到:
標(biāo)簽:PHP Curl
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定