phpcurl如何發(fā)送請(qǐng)求-創(chuàng)新互聯(lián)

php curl如何發(fā)送請(qǐng)求?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)專注于黃梅企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站定制開發(fā)。黃梅網(wǎng)站建設(shè)公司,為黃梅等地區(qū)提供建站服務(wù)。全流程按需開發(fā)網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

  cURL可以使用URL的語(yǔ)法模擬瀏覽器來(lái)傳輸數(shù)據(jù),因?yàn)樗悄M瀏覽器,因此它同樣支持多種協(xié)議,F(xiàn)TP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等協(xié)議都可以很好的支持,包括一些:HTTPS認(rèn)證,HTTP POST方法,HTTP PUT方法,F(xiàn)TP上傳,keyberos認(rèn)證,HTTP上傳,代理服務(wù)器,cookies,用戶名/密碼認(rèn)證,下載文件斷點(diǎn)續(xù)傳,上傳文件斷點(diǎn)續(xù)傳,http代理服務(wù)器管道,甚至它還支持IPv6,scoket5代理服務(wù)器,通過(guò)http代理服務(wù)器上傳文件到FTP服務(wù)器等等。

  使用PHP的cURL庫(kù)可以簡(jiǎn)單和有效地去抓網(wǎng)頁(yè)。你只需要運(yùn)行一個(gè)腳本,然后分析一下你所抓取的網(wǎng)頁(yè),然后就可以以程序的方式得到你想要的數(shù)據(jù)了。無(wú)論是你想從從一個(gè)鏈接上取部分?jǐn)?shù)據(jù),或是取一個(gè)XML文件并把其導(dǎo)入數(shù)據(jù)庫(kù),那怕就是簡(jiǎn)單的獲取網(wǎng)頁(yè)內(nèi)容,cURL 是一個(gè)功能強(qiáng)大的PHP庫(kù)。

1、PHP建立CURL請(qǐng)求的基本步驟

①:初始化

  curl_init()

②:設(shè)置屬性

  curl_setopt().有一長(zhǎng)串cURL參數(shù)可供設(shè)置,它們能指定URL請(qǐng)求的各個(gè)細(xì)節(jié)。

③:執(zhí)行并獲取結(jié)果

  curl_exec()

④:釋放句柄

  curl_close()

2、實(shí)例:

php curl 發(fā)送get請(qǐng)求:

//初始化
$curl = curl_init();
//設(shè)置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
//設(shè)置頭文件的信息作為數(shù)據(jù)流輸出
curl_setopt($curl, CURLOPT_HEADER, 1);
//設(shè)置獲取的信息以文件流的形式返回,而不是直接輸出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//執(zhí)行命令
$data = curl_exec($curl);
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //輸出請(qǐng)求狀態(tài)碼
//關(guān)閉URL請(qǐng)求
curl_close($curl);
//顯示獲得的數(shù)據(jù)
print_r($data);

php curl 發(fā)送post請(qǐng)求:

//初始化
$curl = curl_init();
//設(shè)置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://localhost/test/test.php');
//設(shè)置頭文件的信息作為數(shù)據(jù)流輸出
curl_setopt($curl, CURLOPT_HEADER, 1);
//設(shè)置獲取的信息以文件流的形式返回,而不是直接輸出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//設(shè)置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//設(shè)置post數(shù)據(jù)
$post_data = array(
    "title" => "1290800466",
    "content" => "3424243243"
);
//post提交的數(shù)據(jù)
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//執(zhí)行命令
$data = curl_exec($curl);
//關(guān)閉URL請(qǐng)求
curl_close($curl);
//顯示獲得的數(shù)據(jù)
print_r($data);

test.php:

<?php
$title = $_REQUEST['title'];
$content = $_REQUEST['content'];
error_log($title."\n",3,'error.log');
error_log($content."\n",3,'error.log');
echo 'ok';

3、PHP cURL 函數(shù):

以下包含了PHP cURL函數(shù)列表:

函數(shù)描述
curl_close()關(guān)閉一個(gè)cURL會(huì)話。
curl_copy_handle()復(fù)制一個(gè)cURL句柄和它的所有選項(xiàng)。
curl_errno()返回最后一次的錯(cuò)誤號(hào)。
curl_error()返回一個(gè)保護(hù)當(dāng)前會(huì)話最近一次錯(cuò)誤的字符串。
curl_escape()返回轉(zhuǎn)義字符串,對(duì)給定的字符串進(jìn)行URL編碼。
curl_exec()執(zhí)行一個(gè)cURL會(huì)話。
curl_file_create()創(chuàng)建一個(gè) CURLFile 對(duì)象。
curl_getinfo()獲取一個(gè)cURL連接資源句柄的信息。
curl_init()初始化一個(gè)cURL會(huì)話。
curl_multi_add_handle()向curl批處理會(huì)話中添加單獨(dú)的curl句柄。
curl_multi_close()關(guān)閉一組cURL句柄。
curl_multi_exec()運(yùn)行當(dāng)前 cURL 句柄的子連接。
curl_multi_getcontent()如果設(shè)置了CURLOPT_RETURNTRANSFER,則返回獲取的輸出的文本流。
curl_multi_info_read()獲取當(dāng)前解析的cURL的相關(guān)傳輸信息。
curl_multi_init()返回一個(gè)新cURL批處理句柄。
curl_multi_remove_handle()移除curl批處理句柄資源中的某個(gè)句柄資源。
curl_multi_select()等待所有cURL批處理中的活動(dòng)連接。
curl_multi_setopt()設(shè)置一個(gè)批處理cURL傳輸選項(xiàng)。
curl_multi_strerror()返回描述錯(cuò)誤碼的字符串文本。
curl_pause()暫停及恢復(fù)連接。
curl_reset()重置libcurl的會(huì)話句柄的所有選項(xiàng)。
curl_setopt_array()為cURL傳輸會(huì)話批量設(shè)置選項(xiàng)。
curl_setopt()設(shè)置一個(gè)cURL傳輸選項(xiàng)。
curl_share_close()關(guān)閉cURL共享句柄。
curl_share_init()初始化cURL共享句柄。
curl_share_setopt()設(shè)置一個(gè)共享句柄的cURL傳輸選項(xiàng)。
curl_strerror()返回錯(cuò)誤代碼的字符串描述。
curl_unescape()解碼URL編碼后的字符串。
curl_version()獲取cURL版本信息。

成功時(shí)返回 TRUE, 或者在失敗時(shí)返回 FALSE。

一些狀態(tài)代碼

1xx:請(qǐng)求收到,繼續(xù)處理

2xx:操作成功收到,分析、接受

3xx:完成此請(qǐng)求必須進(jìn)一步處理

4xx:請(qǐng)求包含一個(gè)錯(cuò)誤語(yǔ)法或不能完成

5xx:服務(wù)器執(zhí)行一個(gè)完全有效請(qǐng)求失敗

100——客戶必須繼續(xù)發(fā)出請(qǐng)求

101——客戶要求服務(wù)器根據(jù)請(qǐng)求轉(zhuǎn)換HTTP協(xié)議版本

200——交易成功

201——提示知道新文件的URL

202——接受和處理、但處理未完成

203——返回信息不確定或不完整

204——請(qǐng)求收到,但返回信息為空

205——服務(wù)器完成了請(qǐng)求,用戶代理必須復(fù)位當(dāng)前已經(jīng)瀏覽過(guò)的文件

206——服務(wù)器已經(jīng)完成了部分用戶的GET請(qǐng)求

300——請(qǐng)求的資源可在多處得到

301——?jiǎng)h除請(qǐng)求數(shù)據(jù)

302——在其他地址發(fā)現(xiàn)了請(qǐng)求數(shù)據(jù)

303——建議客戶訪問(wèn)其他URL或訪問(wèn)方式

304——客戶端已經(jīng)執(zhí)行了GET,但文件未變化

305——請(qǐng)求的資源必須從服務(wù)器指定的地址得到

306——前一版本HTTP中使用的代碼,現(xiàn)行版本中不再使用

307——申明請(qǐng)求的資源臨時(shí)性刪除

400——錯(cuò)誤請(qǐng)求,如語(yǔ)法錯(cuò)誤

401——請(qǐng)求授權(quán)失敗

402——保留有效ChargeTo頭響應(yīng)

403——請(qǐng)求不允許

404——沒有發(fā)現(xiàn)文件、查詢或URl

405——用戶在Request-Line字段定義的方法不允許

406——根據(jù)用戶發(fā)送的Accept拖,請(qǐng)求資源不可訪問(wèn)

407——類似401,用戶必須首先在代理服務(wù)器上得到授權(quán)

408——客戶端沒有在用戶指定的餓時(shí)間內(nèi)完成請(qǐng)求

409——對(duì)當(dāng)前資源狀態(tài),請(qǐng)求不能完成

410——服務(wù)器上不再有此資源且無(wú)進(jìn)一步的參考地址

411——服務(wù)器拒絕用戶定義的Content-Length屬性請(qǐng)求

412——一個(gè)或多個(gè)請(qǐng)求頭字段在當(dāng)前請(qǐng)求中錯(cuò)誤

413——請(qǐng)求的資源大于服務(wù)器允許的大小

414——請(qǐng)求的資源URL長(zhǎng)于服務(wù)器允許的長(zhǎng)度

415——請(qǐng)求資源不支持請(qǐng)求項(xiàng)目格式

416——請(qǐng)求中包含Range請(qǐng)求頭字段,在當(dāng)前請(qǐng)求資源范圍內(nèi)沒有range指示值,請(qǐng)求

也不包含If-Range請(qǐng)求頭字段

417——服務(wù)器不滿足請(qǐng)求Expect頭字段指定的期望值,如果是代理服務(wù)器,可能是下一級(jí)服務(wù)器不能滿足請(qǐng)求

500——服務(wù)器產(chǎn)生內(nèi)部錯(cuò)誤

501——服務(wù)器不支持請(qǐng)求的函數(shù)

502——服務(wù)器暫時(shí)不可用,有時(shí)是為了防止發(fā)生系統(tǒng)過(guò)載

503——服務(wù)器過(guò)載或暫停維修

504——關(guān)口過(guò)載,服務(wù)器使用另一個(gè)關(guān)口或服務(wù)來(lái)響應(yīng)用戶,等待時(shí)間設(shè)定值較長(zhǎng)

505——服務(wù)器不支持或拒絕支請(qǐng)求頭中指定的HTTP版本

關(guān)于php curl如何發(fā)送請(qǐng)求問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

當(dāng)前題目:phpcurl如何發(fā)送請(qǐng)求-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://muchs.cn/article4/dheooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站全網(wǎng)營(yíng)銷推廣、軟件開發(fā)、電子商務(wù)、做網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司