搜尋
首頁後端開發php教程php curl發送請求詳細教程

php curl發送請求詳細教程

Jul 31, 2019 pm 04:33 PM
curlphp

php curl發送請求詳細教程

如果你想了解更多關於php的知識,可以點選:#php教學

  cURL

可以使用URL的語法模擬瀏覽器來傳輸數據,因為它是模擬瀏覽器,因此它同樣支援多種協議,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及LDAP等協定都可以很好的支持,包括一些:HTTPS認證,HTTP POST方法,HTTP PUT方法,FTP上傳,keyberos認證,HTTP上傳,代理伺服器,cookies,使用者名稱/密碼認證,下載檔案斷點續傳,上傳檔案斷點續傳,http代理伺服器管道,甚至它還支援IPv6,scoket5代理伺服器,透過http代理伺服器上傳檔案到FTP伺服器等等。

  使用PHP的cURL函式庫可以簡單有效地去抓網頁。

你只需要執行一個腳本,然後分析一下你所抓取的網頁,然後就可以以程式的方式得到你想要的資料了。無論是你想從一個連結上取部分數據,或是取一個XML檔案並把其導入資料庫,那怕就是簡單的獲取網頁內容,cURL 是一個功能強大的PHP庫。

1、PHP建立CURL請求的基本步驟

①:初始化

  

curl_init()

②:設定屬性

  

curl_setopt().有一長串cURL參數可供設置,它們能指定URL請求的各個細節。

③:執行並取得結果  curl_exec()

④:釋放句柄

  curl_close()

#2、實例:

php curl 傳送get請求:

//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行命令
$data = curl_exec($curl);
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //输出请求状态码
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);

###php curl 傳送post請求:######
//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://localhost/test/test.php');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
$post_data = array(
    "title" => "1290800466",
    "content" => "3424243243"
);
//post提交的数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
######test.php:######
<?php
$title = $_REQUEST[&#39;title&#39;];
$content = $_REQUEST[&#39;content&#39;];
error_log($title."\n",3,&#39;error.log&#39;);
error_log($content."\n",3,&#39;error.log&#39;);
echo &#39;ok&#39;;
####### ###3、PHP cURL 函數:############以下包含了PHP cURL函數列表:###
函數 描述
#curl_close() 關閉一個cURL會話。
curl_copy_handle() 複製一個cURL句柄和它的所有選項。
curl_errno() 傳回最後一次的錯誤號碼。
curl_error() 傳回一個保護目前會話最近一次錯誤的字串。
curl_escape() 傳回轉義字串,對給定的字串進行URL編碼。
curl_exec() 執行一個cURL會話。
curl_file_create() 建立一個 CURLFile 物件。
curl_getinfo() 取得一個cURL連線資源句柄的資訊。
curl_init() 初始化一個cURL會話。
curl_multi_add_handle() #在curl批次會話中加入單獨的curl句柄。
curl_multi_close() 關閉一組cURL句柄。
curl_multi_exec() 執行目前 cURL 句柄的子連線。
curl_multi_getcontent() 如果設定了CURLOPT_RETURNTRANSFER,則傳回所取得的輸出的文字流。
curl_multi_info_read() 取得目前解析的cURL的相關傳輸資訊。
curl_multi_init() 傳回一個新cURL批次句柄。
curl_multi_remove_handle() #移除curl批次處理句柄資源中的某個句柄資源。
curl_multi_select() 等待所有cURL批次中的活動連線。
curl_multi_setopt() 設定一個批次cURL傳輸選項。
curl_multi_strerror() 傳回描述錯誤碼的字串文字。
curl_pause() 暫停及恢復連線。
curl_reset() 重置libcurl的會話句柄的所有選項。
curl_setopt_array() 為cURL傳輸會話批次設定選項。
curl_setopt() 設定一個cURL傳輸選項。
curl_share_close() 關閉cURL共享句柄。
curl_share_init() 初始化cURL共享句柄。
curl_share_setopt() 設定一個共享句柄的cURL傳輸選項。
curl_strerror() 傳回錯誤代碼的字串描述。
curl_unescape() 解碼URL編碼後的字串。
curl_version() 取得cURL版本資訊。

成功時傳回 TRUE, 或在失敗時回傳 FALSE。

一些狀態代碼

1xx:請求收到,繼續處理  

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

3xx:完成此請求必須進一步處理  

4xx:請求包含一個錯誤語法或無法完成  

5xx:伺服器執行一個完全有效請求失敗 

#100-客戶必須繼續發出請求  

101-客戶要求伺服器根據請求轉換HTTP協定版本 

200-交易成功  

#201-提示知道新文件的URL  

202-接受與處理、但處理未完成  

203-回傳資訊不確定或不完整  

#204-請求收到,但回傳訊息為空  

205-伺服器完成了請求,使用者代理程式必須重設目前已瀏覽的檔案  

206-伺服器已經完成了部分使用者的GET請求 

300-請求的資源可在多處得到  

301-刪除請求資料  

302-在其他位址發現了請求資料  

303— —建議客戶存取其他URL或存取方式  

304-用戶端已經執行了GET,但檔案未變更  

305-要求的資源必須從伺服器指定的位址得到  

306-先前版本HTTP中所使用的程式碼,目前版本中不再使用  

307-申明請求的資源暫時性刪除 

400-錯誤請求,如文法錯誤  

401-請求授權失敗  

402-保留有效ChargeTo頭回應  

403-請求不允許  

#404-沒有發現文件、查詢或URl  

405-使用者在Request-Line欄位定義的方法不允許  

406-根據使用者傳送的Accept拖,請求資源無法存取  

#407-類似401,使用者必須先在代理伺服器上得到授權  

408-客戶端沒有在使用者指定的餓時間內完成請求  

#409-對目前資源狀態,請求不能完成  

410-伺服器上不再有此資源且無進一步的參考位址  

411-伺服器拒絕使用者定義的Content-Length屬性請求  

#412-一個或多個請求頭字段在目前請求中錯誤  

413-請求的資源大於伺服器允許的大小  

414-請求的資源網址長於伺服器允許的長度  

415-請求資源不支援請求項目格式  

416-請求中包含Range請求頭字段,在目前請求資源範圍內沒有range指示值,請求  

也不包含If-Range請求頭字段  

417-伺服器不符合請求Expect頭字段指定的期望值,如果是代理伺服器,可能是下一層伺服器不能滿足請求 

500-伺服器產生內部錯誤  

501-伺服器不支援請求的函數  

502-伺服器暫時無法使用,有時是為了防止系統過載  

#503-伺服器過載或暫停維修  

504-關卡過載,伺服器使用另一個關卡或服務來回應用戶,等待時間設定值較長  

##505-伺服器不支援或拒絕支請求頭中指定的HTTP版本 

以上是php curl發送請求詳細教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

您如何從PHP會話中檢索數據?您如何從PHP會話中檢索數據?May 01, 2025 am 12:11 AM

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

您如何使用會議來實施購物車?您如何使用會議來實施購物車?May 01, 2025 am 12:10 AM

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

您如何在PHP中創建和使用接口?您如何在PHP中創建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解釋瞭如何創建,實施和使用PHP中的接口,重點關注其對代碼組織和可維護性的好處。

crypt()和password_hash()有什麼區別?crypt()和password_hash()有什麼區別?Apr 30, 2025 pm 03:39 PM

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

如何防止PHP中的跨站點腳本(XSS)?如何防止PHP中的跨站點腳本(XSS)?Apr 30, 2025 pm 03:38 PM

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器