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

目錄
PHP 中的 HTTP 動詞:背景
GET 和 POST HTTP 方法
其他 HTTP 方法
對非 POST HTTP 動詞的更改
PHP 8.4 中的 HTTP 動詞:開發(fā)人員指南
支持的內(nèi)容類型
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ā)布,你和你的團隊對此毫無疑問 一直在努力理解新功能、棄用和 伴隨該語言最新版本的變化。這 包括對非 POST HTTP 動詞的更改。

在這個博客中,我步行 通過PHP中HTTP動詞的背景,解釋為什么HTTP PHP 8.4 中的動詞變化很重要。然后我為開發(fā)人員提供指南 在代碼中實現(xiàn)這些更改時參考。

截屏2024-12-24 16.43.04.png

PHP 中的 HTTP 動詞:背景

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

GET 和 POST HTTP 方法

GET 請求通過 URL 的查詢字符串傳遞表單數(shù)據(jù)。 這意味著表單結果可以被添加書簽、重復,甚至 緩存。因此,GET 請求通常僅用于操作 請求狀態(tài)而不改變狀態(tài):搜索、結果 排序、結果過濾、分頁等

如果你想執(zhí)行 可能會在應用程序中進行更改的操作 - 例如, 處理購物車、發(fā)送支持消息、上傳 圖像等 — 您將使用 POST HTTP 方法。 POST 請求是 被認為是非冪等的,這意味著它們不能被緩存并且不應該 需要重復,因為它們有副作用。這些影響可能意味著數(shù)據(jù)庫中的插入、更改或刪除、文件系統(tǒng)操作、Web 請求或其他操作。

在 為了自動處理表單數(shù)據(jù),PHP 提供了幾種 它從傳入請求填充的超全局變量。 $_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 如此易于學習和入門的原因之一。

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

其他 HTTP 方法

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

  • PUT 通常用于指示數(shù)據(jù)應替換現(xiàn)有數(shù)據(jù)。
  • PATCH 通常用于指示對現(xiàn)有記錄的部分更新
  • DELETE 用于表示應刪除或標記為提交的記錄或內(nèi)容已刪除。

雖然瀏覽器本身不支持這些(還?。?,但許多 JavaScript 框架和庫都支持。

但是 有一個問題:PHP 不會自動處理這些請求。在 事實上,你必須完全自己處理這些解析,這 當您還開始處理文件上傳時,可能會出現(xiàn)很大的問題 以及表單數(shù)據(jù)。 (永遠不要推出自己的解析器?。?/p>

對非 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ù)據(jù)和文件上傳(或覆蓋超全局變量, 如果你愿意的話)。您還可以通過 $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'],
];


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

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

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

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

支持的內(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 開始)多次讀取。但是,當接收 multipart/form-data 時 內(nèi)容,PHP 變得有點破壞性,有一個很好的理由:緩沖 文件可能會導致文件內(nèi)容被寫入磁盤兩次, 導致更多的內(nèi)存、存儲和 I/O 使用。

因此,request_parse_body() 不得調(diào)用兩次,因為它會破壞性地消耗 php://input。

$options參數(shù)

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

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

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

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

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集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

為什么我們評論:PHP指南 為什么我們評論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

如何在Windows上安裝PHP 如何在Windows上安裝PHP Jul 15, 2025 am 02:46 AM

安裝PHP在Windows上的關鍵步驟包括:1.下載合適的PHP版本并解壓,推薦使用ThreadSafe版本配合Apache或NonThreadSafe版本配合Nginx;2.配置php.ini文件,將php.ini-development或php.ini-production重命名為php.ini;3.將PHP路徑添加到系統(tǒng)環(huán)境變量Path中以便命令行使用;4.測試PHP是否安裝成功,通過命令行執(zhí)行php-v和運行內(nèi)置服務器測試解析能力;5.若使用Apache,需在httpd.conf中配置P

PHP語法:基礎知識 PHP語法:基礎知識 Jul 15, 2025 am 02:46 AM

PHP的基礎語法包括四個關鍵點:1.PHP標簽必須使用結束,推薦使用完整標簽;2.輸出內(nèi)容常用echo和print,其中echo支持多參數(shù)且效率更高;3.注釋方式有//、#和//,用于提升代碼可讀性;4.每條語句必須以分號結尾,空格和換行不影響執(zhí)行但影響可讀性。掌握這些基本規(guī)則有助于寫出清晰穩(wěn)定的PHP代碼。

PHP 8安裝指南 PHP 8安裝指南 Jul 16, 2025 am 03:41 AM

在Ubuntu上安裝PHP8的步驟為:1.更新軟件包列表;2.安裝PHP8及基礎組件;3.檢查版本確認安裝成功;4.按需安裝額外模塊。Windows用戶可下載ZIP包并解壓,隨后修改配置文件、啟用擴展并將路徑加入環(huán)境變量。macOS用戶推薦使用Homebrew安裝,依次執(zhí)行添加tap、安裝PHP8、設置默認版本及驗證版本等步驟。不同系統(tǒng)下安裝方式雖有差異,但流程清晰,根據(jù)用途選對方法即可。

什么是PHP,它是用什么? 什么是PHP,它是用什么? Jul 16, 2025 am 03:45 AM

PHPisaserver-sidescriptinglanguageusedforwebdevelopment,especiallyfordynamicwebsitesandCMSplatformslikeWordPress.Itrunsontheserver,processesdata,interactswithdatabases,andsendsHTMLtobrowsers.Commonusesincludeuserauthentication,e-commerceplatforms,for

python如果還有示例 python如果還有示例 Jul 15, 2025 am 02:55 AM

寫Python的ifelse語句關鍵在于理解邏輯結構與細節(jié)。1.基礎結構是if條件成立執(zhí)行一段代碼,否則執(zhí)行else部分,else可選;2.多條件判斷用elif實現(xiàn),順序執(zhí)行且一旦滿足即停止;3.嵌套if用于進一步細分判斷,建議不超過兩層;4.簡潔場景可用三元表達式替代簡單ifelse。注意縮進、條件順序及邏輯完整性,才能寫出清晰穩(wěn)定的判斷代碼。

您的第一個PHP腳本:實用介紹 您的第一個PHP腳本:實用介紹 Jul 16, 2025 am 03:42 AM

如何開始編寫第一個PHP腳本?首先設置本地開發(fā)環(huán)境,安裝XAMPP/MAMP/LAMP,使用文本編輯器,了解服務器運行原理。其次,創(chuàng)建一個名為hello.php的文件,輸入基本代碼并運行測試。第三,學習混合使用PHP與HTML以實現(xiàn)動態(tài)內(nèi)容輸出。最后,注意常見錯誤如缺少分號、引用問題及文件擴展名錯誤,并開啟錯誤報告以便調(diào)試。

如何處理PHP中的未定義索引 如何處理PHP中的未定義索引 Jul 15, 2025 am 02:08 AM

出現(xiàn)“undefinedindex”錯誤是因為訪問了數(shù)組中不存在的鍵。解決方法包括:1.使用isset()檢查鍵是否存在,適合處理用戶輸入;2.使用array_key_exists()判斷鍵是否被設置,即使值為null也能識別;3.使用空合并運算符??設置默認值,避免直接訪問未定義鍵;此外還需注意表單字段名拼寫、數(shù)據(jù)庫結果為空、數(shù)組解包未驗證、foreach中未檢查子級鍵以及未調(diào)用session_start()等常見問題。

See all articles