国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
PHP 的 HTTP 動詞:背景
GET 和 POST HTTP 方法
其他 HTTP 方法
對非 POST HTTP 動詞的更改
php://input
$options參數(shù)
首頁 後端開發(fā) php教程 PHP 8.4 中的 HTTP 動詞變化

PHP 8.4 中的 HTTP 動詞變化

Dec 24, 2024 pm 04:47 PM
php

PHP 8.4 11 月發(fā)布,你和你的團(tuán)隊對此毫無疑問 一直在努力理解新功能、棄用和 伴隨該語言最新版本的變化。這 包括對非 POST HTTP 動詞的更改。

在這個部落格中,我步行 透過PHP中HTTP動詞的背景,解釋為什麼HTTP PHP 8.4 的動詞變化很重要。然後我為開發(fā)人員提供指南 在程式碼中實現(xiàn)這些變更時參考。

截屏2024-12-24 16.43.04.png

PHP 的 HTTP 動詞:背景

PHP 開發(fā)時考慮到了網(wǎng)絡(luò)並支援其表單處理 最早的日子。最初在 HTTP 中,本質(zhì)上只有兩個 瀏覽器可以請求網(wǎng)頁的方法:透過 GET 或 POST。 ?雖然 HTML 表單仍然只真正支援這兩種方法, JavaScript 能夠使用任何 HTTP 方法傳送 HTTP 請求, 許多工具包(例如 HTMX)甚至可以為開發(fā)人員無縫處理此問題。

GET 和 POST HTTP 方法

GET 請求透過 URL 的查詢字串傳遞表單資料。 這意味著表單結(jié)果可以被加書籤、重複,甚至 快取.因此,GET 請求通常僅用於操作 請求狀態(tài)而不改變狀態(tài):搜尋、結(jié)果 排序、結(jié)果過濾、分頁等

如果你想執(zhí)行 可能會在應(yīng)用程式中進(jìn)行更改的操作 - 例如, 處理購物車、發(fā)送支援訊息、上傳 映像等 — 您將使用 POST HTTP 方法。 POST 請求是 被認(rèn)為是非冪等的,這意味著它們不能被緩存並且不應(yīng)該 需要重複,因為它們有副作用。這些影響可能意味著資料庫中的插入、變更或刪除、檔案系統(tǒng)操作、Web 請求或其他操作。

在 為了自動處理表單數(shù)據(jù),PHP 提供了幾種 它從傳入請求填充的超全域變數(shù)。 $_GET 填入 URL 查詢字串參數(shù),並且可以從任何請求方法填入。然而,$_POST 僅由使用內(nèi)容類型application/x-www-form-urlencoded 發(fā)出的POST 請求的正文填充,其可能如下所示:

title=HTTP?Verbs?Changes?in?PHP?8.4&url=https://example.org/blog/php-8.4-http-verbs&author=Just?Some?Guy&tags[0]=php&tags[1]=http


PHP 將接受它並填充$_POST 超全域變量,使其變?yōu)橐韵聝?nèi)容:

<?php $_POST = [
    &#39;title&#39; =>?'HTTP?Verbs?Changes?in?PHP?8.4',
????'url'?=>?'https://example.org/blog/php-8.4-http-verbs',
????'author'?=>?'Just?Some?Guy',
????'tags'?=>?['php',?'http'],
];


PHP確實這樣做的事實這對您來說是幕後的一部分,這也是 PHP 如此易於學(xué)習(xí)和入門的原因之一。

此外,它還可以處理內(nèi)容類型multipart/form-data,它允許瀏覽器除了提供表單資料之外還可以上傳檔案。當(dāng)它這樣做時,它將填充一個額外的 $_FILES superglobal,提供上傳檔案的資訊; 然後,開發(fā)人員可以在儲存之前驗證和預(yù)處理這些文件 它們位於永久位置。

其他 HTTP 方法

還有 比 GET 和 POST 多得多的 HTTP 方法以及 Web 開發(fā)人員 通常會想要選擇不同的方法來提供上下文 他們正在嘗試執(zhí)行以下操作:

  • PUT 通常用於指示資料應(yīng)替換現(xiàn)有資料。
  • PATCH 通常用於指示現(xiàn)有記錄的部分更新
  • DELETE 用於表示應(yīng)刪除或標(biāo)記為提交的記錄或內(nèi)容已刪除。

雖然瀏覽器本身不支援這些(也!),但許多 JavaScript 框架和函式庫都支援。

但是 有一個問題:PHP 不會自動處理這些請求。在 事實上,你必須完全自己處理這些解析,這 當(dāng)您也開始處理文件上傳時,可能會出現(xiàn)很大的問題 以及表單資料。 (絕對不要推出自己的解析器!)

對非 POST HTTP 動詞的更改

PHP 8.4 引入了方法 request_parse_body():

title=HTTP?Verbs?Changes?in?PHP?8.4&url=https://example.org/blog/php-8.4-http-verbs&author=Just?Some?Guy&tags[0]=php&tags[1]=http


函數(shù)以一如既往的方式解析傳入的請求 用於 POST 請求,但允許您指定備用變數(shù) 儲存表單資料和檔案上傳(或覆蓋超全域變量, 如果你願意的話)。您也可以透過 $options 參數(shù)更改解析器的行為,更多資訊如下。

常見模式可能是:
<?php $_POST = [
    &#39;title&#39; =>?'HTTP?Verbs?Changes?in?PHP?8.4',
????'url'?=>?'https://example.org/blog/php-8.4-http-verbs',
????'author'?=>?'Just?Some?Guy',
????'tags'?=>?['php',?'http'],
];


(儘管如果您正在使用框架,希望框架能夠為您處理該細(xì)節(jié)。)

那就是 從字面上看,是該功能的全部。提供一個簡單的功能 身為 PHP 開發(fā)人員,您已經(jīng)熟悉了交鑰匙行為。它 沒有比這更好的了!

PHP 8.4 中的 HTTP 動詞:開發(fā)人員指南

現(xiàn)在 我們已經(jīng)討論了 PHP 8.4 中 HTTP 動詞的變化,讓我們 查看一些範(fàn)例,了解如何使用和應(yīng)用這些 程式碼中的更新。

支援的內(nèi)容類型

就像 POST 請求一樣,request_parse_body()只會解析具有以下內(nèi)容的請求類型:
  • application/x-www-form-urlencoded
  • multipart/form-data

在application /x-www- 的情況下形式urlencoded,$_FILES 等效 數(shù)組(傳回數(shù)組中的索引 1)將為空。如果內(nèi)容 不支援類型,函數(shù)將拋出 InvalidArgumentException。

php://input

PHP 讓您透過 php://input 串流檢查原始請求內(nèi)容。這是一個緩衝流,可以(從 PHP 7.4 開始)多次讀取。但是,當(dāng)接收 multipart/form-data 時 內(nèi)容,PHP 變得有點破壞性,有一個很好的理由:緩衝 文件可能會導(dǎo)致文件內(nèi)容被寫入磁碟兩次, 導(dǎo)致更多的記憶體、儲存和 I/O 使用。

因此,request_parse_body() 不得呼叫兩次,因為它會破壞性地消耗 php://input。

$options參數(shù)

request_parse_body() 的 $options 參數(shù)允許您在運(yùn)行時更改其行為,而不是依賴硬編碼php.ini 配置。

  • 指定 post_max_size 作為它將嘗試解析的最大內(nèi)容大小。
  • 指定 max_input_vars 以限制它將嘗試解析的表單變數(shù)數(shù)量。
  • 指定 upload_max_filesize 來限制單一檔案的大小
  • 指定 max_file_uploads 以限制它將處理的檔案上傳數(shù)量。
  • 指定 max_multipart_body_parts 以限制它將解析的檔案上傳和表單資料變數(shù)的組合。

以上是PHP 8.4 中的 HTTP 動詞變化的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

寫乾淨(jìng)的PHP評論 寫乾淨(jìng)的PHP評論 Jul 18, 2025 am 04:36 AM

註釋應(yīng)說明“為什麼”而非“做了什麼”,如解釋業(yè)務(wù)原因而非重複代碼操作;2.在復(fù)雜邏輯前加總覽性註釋,簡要說明流程步驟,幫助建立整體印象;3.給“奇怪”代碼加註釋,解釋非常規(guī)寫法的意圖,避免誤解為bug;4.註釋格式建議簡潔為主,單行用//,函數(shù)/類用/*.../,保持統(tǒng)一風(fēng)格;5.避免註釋與代碼不同步、註釋過長或註釋掉代碼未刪除等問題,確保註釋真正提升代碼可讀性和維護(hù)性。

PHP控制結(jié)構(gòu):如果/其他 PHP控制結(jié)構(gòu):如果/其他 Jul 18, 2025 am 04:02 AM

在PHP中使用if/else控制結(jié)構(gòu)進(jìn)行條件判斷時,應(yīng)遵循以下要點:1.在需要根據(jù)條件執(zhí)行不同代碼塊時使用if/else;2.條件為真執(zhí)行if分支,為假進(jìn)入else或elseif;3.多條件判斷時elseif應(yīng)按邏輯順序排列,範(fàn)圍大的放前面;4.避免嵌套過深,建議三層以上考慮switch或重構(gòu);5.始終使用花括號{}提高可讀性;6.注意布爾值轉(zhuǎn)換問題,防止類型誤判;7.簡單條件可用三元運(yùn)算符簡化代碼;8.合併重複判斷減少冗餘;9.測試邊界值確保邏輯完整。掌握這些技巧有助於提升代碼質(zhì)量與穩(wěn)定性。

使用PHP字符串 使用PHP字符串 Jul 18, 2025 am 04:10 AM

PHP字符串處理需掌握核心函數(shù)及場景。 1.拼接用點號或.=,大量拼接推薦數(shù)組 implode;2.查找用strpos(),替換用str_replace(),注意區(qū)分大小寫及正則使用條件;3.截取用substr(),格式化用sprintf();4.輸出HTML用htmlspecialchars(),數(shù)據(jù)庫操作用參數(shù)化查詢。熟悉這些函數(shù)行為可應(yīng)對多數(shù)開發(fā)場景。

我為什麼在PHP中獲得未定義的索引 我為什麼在PHP中獲得未定義的索引 Jul 18, 2025 am 04:12 AM

出現(xiàn)“undefinedindex”錯誤是因為嘗試訪問了數(shù)組中不存在的鍵。要解決這個問題,首先要確認(rèn)數(shù)組鍵是否存在,可使用isset()或array_key_exists()函數(shù)檢查;其次確保表單數(shù)據(jù)正確提交,包括驗證請求方法和字段存在性;第三注意鍵名的大小寫敏感,避免拼寫錯誤;最後在使用$_SESSION、$_COOKIE等超全局?jǐn)?shù)組時也應(yīng)先檢查鍵是否存在,以避免錯誤發(fā)生。

PHP評論和語法 PHP評論和語法 Jul 18, 2025 am 04:19 AM

正確使用PHP註釋的方法有兩種:單行註釋用//或#,多行註釋用/.../。 PHP語法需注意每條語句以分號結(jié)尾、變量名前加$且區(qū)分大小寫、字符串拼接用點(.)、保持良好縮進(jìn)提升可讀性。 PHP標(biāo)籤規(guī)範(fàn)為使用,避免多餘空白問題。掌握這些基礎(chǔ)但關(guān)鍵的細(xì)節(jié)有助於提升代碼質(zhì)量與協(xié)作效率。

PHP設(shè)置的簡單指南 PHP設(shè)置的簡單指南 Jul 18, 2025 am 04:25 AM

PHP設(shè)置的關(guān)鍵在於明確安裝方式、配置php.ini、連接Web服務(wù)器及啟用必要擴(kuò)展。 1.安裝PHP:Linux用apt、Mac用Homebrew、Windows推薦XAMPP;2.配置php.ini:調(diào)整錯誤報告、上傳限制等並重啟服務(wù)器;3.搭配Web服務(wù)器:Apache通過mod_php,Nginx使用PHP-FPM;4.安裝常用擴(kuò)展:如mysqli、json、mbstring等以支持完整功能。

團(tuán)隊的PHP評論 團(tuán)隊的PHP評論 Jul 18, 2025 am 04:28 AM

寫好PHP註釋的關(guān)鍵在於解釋“為什麼”而非“做什麼”,統(tǒng)一團(tuán)隊註釋風(fēng)格,避免重複代碼式註釋,合理使用TODO和FIXME標(biāo)記。 1.註釋應(yīng)重點說明代碼背後的邏輯原因,如性能優(yōu)化、算法選擇等;2.團(tuán)隊需統(tǒng)一註釋規(guī)範(fàn),如單行註釋用//,函數(shù)類用docblock格式,並包含@author、@since等標(biāo)籤;3.避免僅複述代碼內(nèi)容的無意義註釋,應(yīng)補(bǔ)充業(yè)務(wù)含義;4.使用TODO和FIXME標(biāo)記待辦事項,並可配合工具追蹤,確保註釋與代碼同步更新,提升項目可維護(hù)性。

PHP的超級全局變量 PHP的超級全局變量 Jul 18, 2025 am 04:28 AM

PHP有五個最常用的超全局變量,分別是$\_GET、$\_POST、$\_SERVER、$\_SESSION和$\_COOKIE。 ①$\_GET用於獲取URL中的參數(shù),適用於分頁、過濾等非敏感數(shù)據(jù)傳遞,但需注意輸入驗證;②$\_POST用於接收表單提交的敏感數(shù)據(jù),如登錄信息,需防範(fàn)SQL注入和XSS攻擊;③$\_SERVER提供服務(wù)器和腳本執(zhí)行環(huán)境的信息,如當(dāng)前腳本名、用戶IP和請求方法,使用前應(yīng)檢查鍵是否存在;④$\_SESSION用於跨頁面保持用戶狀態(tài),使用時必須先調(diào)用session\_st

See all articles