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

php curl發送請求詳細教程

Jul 31, 2019 pm 04:33 PM
curl php

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

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles