亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
路由如何工作
項目設(shè)置
如何將所有 HTTP 請求重定向到路由器
使用 Apache 重定向
使用 NGINX 重定向
如何創(chuàng)建路由系統(tǒng)
在Views 文件
最終想法
首頁 后端開發(fā) php教程 如何從頭開始為 PHP 應(yīng)用程序構(gòu)建路由系統(tǒng)

如何從頭開始為 PHP 應(yīng)用程序構(gòu)建路由系統(tǒng)

Nov 29, 2024 pm 04:23 PM
php

如果您剛剛開始 PHP 開發(fā)之旅, 您很可能在 URL 中使用完整的文件名來導(dǎo)航 應(yīng)用程序,例如 server/contact.php。不用擔(dān)心,我們都是這樣開始的,這就是我們學(xué)習(xí)的方式。

今天,我想幫助您改進(jìn)瀏覽文件的方式 應(yīng)用。我們將討論路由,因為它在任何情況下都至關(guān)重要 現(xiàn)代應(yīng)用。它將幫助你在你的事業(yè)上更進(jìn)一步 專業(yè)的PHP開發(fā)。

路由系統(tǒng)簡單地映射一個HTTP 向請求處理程序(函數(shù)或方法)發(fā)出請求。換句話說,它 定義了我們?nèi)绾螌?dǎo)航或訪問應(yīng)用程序的不同部分,而無需 需要輸入文件名。您可以通過創(chuàng)建或設(shè)置來做到這一點 路線(或路徑)。例如,路由服務(wù)器/聯(lián)系人允許我們訪問 contact.php 文件。

截屏2024-11-29 16.11.16.png

路由如何工作

首先,讓我回憶一下什么路由是。路由 允許我們以更好的方式構(gòu)建我們的應(yīng)用程序并擺脫混亂 網(wǎng)址。這是任何優(yōu)秀路由系統(tǒng)都提供的兩個主要功能:

  • 定義為每個傳入請求運行哪個操作。
  • 生成 SEO 友好的 URL(例如 /views/users 而不是views/user.php?all).

要做一個路由系統(tǒng),我們需要一個路由器,這是沒有的超過 我們的應(yīng)用程序的入口文件。默認(rèn)情況下,該入口文件名為index.php。在文件內(nèi)部,我們通過 [switch](https://www.php.net/manual/en/control-structs.switch.php) 或 [match](https://www.php) 定義了路由系統(tǒng)。 net/manual/en/control-structs.match.php) 語句。

最后但并非最不重要的一點是,我們必須將所有請求重定向到路由器。這是在 PHP 服務(wù)器的配置文件中完成的。

項目設(shè)置

在繼續(xù)之前,讓我們看看項目會是什么樣子:

如何從頭開始為 PHP 應(yīng)用程序構(gòu)建路由系統(tǒng)文件結(jié)構(gòu)

使用下面的 shell 命令來啟動項目:

mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
  • .htaccess:目錄級 Apache 配置文件。如果使用 NGINX 服務(wù)器則不需要它。
  • index.php:這是項目的路由器和入口文件。所有傳入請求都將重定向到此處。
  • views:此文件夾包含項目的所有 UI。

如何將所有 HTTP 請求重定向到路由器

前面我們說過重定向是在 PHP 服務(wù)器中完成的 配置文件。因此,您需要根據(jù)您的情況進(jìn)行一些調(diào)整 使用 Apache 或 NGINX 服務(wù)器。

使用 Apache 重定向

在這里,我們可以輕松使用我們已經(jīng)在項目根目錄中創(chuàng)建的 .htaccess 文件。添加以下指令:

mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
  • 第 1 行:我們激活 Apache 服務(wù)器的運行時重寫引擎。
  • 第 2 行:我們限制對物理文件的訪問。
  • 第3行:我們將所有即將到來的請求重定向到index.php。

注意:如果站點或應(yīng)用程序位于服務(wù)器的根目錄(或者如果我們沒有虛擬主機(jī)),則 .htaccess 應(yīng)該如下所示:

RewriteEngine?On
RewriteCond?%{REQUEST_FILENAME}?!-f
RewriteRule?^(.*)$?index.php

在上面的代碼中,替換/folder/ 包含您站點的文件夾的名稱。

使用 NGINX 重定向

默認(rèn)配置文件是 name nginx.conf。該文件可以在 etc/nginx、usr/local/nginx/conf 或 /usr/local/etc/nginx 中找到。

要重定向到index.php,請使用以下命令:

RewriteEngine?On
RewriteBase?/folder/
RewriteRule?^index\.php$?-?[L]RewriteCond?%{REQUEST_FILENAME}?!-f
RewriteCond?%{REQUEST_FILENAME}?!-d
RewriteRule?.?/folder/index.php?[L]

位置 / 塊指定這是所有位置的匹配,除非明確指定位置 /。

try_files 指令告訴服務(wù)器,對于與該位置中的塊匹配的 URI 的任何請求,首先嘗試 $uri(或 $uri/),如果文件存在,則提供該文件。否則,將使用后備選項 (index.php)。最后的行為就是我們想要的。

修改后重新加載服務(wù)器。

如何創(chuàng)建路由系統(tǒng)

我們現(xiàn)在知道路由是如何工作的,并且我們正在甚至發(fā)送所有請求 到路由器?,F(xiàn)在是時候在index.php中編寫路由器的代碼了。

首先,創(chuàng)建一個變量來保存HTTP請求字符串:

location?/?{
????????try_files?$uri?$uri/?/index.php}

這個變量將幫助我們進(jìn)行比較有很多路線(路徑)并調(diào)用相應(yīng)的視圖接口。

$request?=?$_SERVER['REQUEST_URI'];

這里發(fā)生了什么? switch 語句類似于同一表達(dá)式(變量)上的一系列 if 語句。僅當(dāng)找到其表達(dá)式計算結(jié)果與 switch 表達(dá)式的值匹配的 case 語句時,它才執(zhí)行代碼。讓我來說明一下,以便您能夠很好地理解它。

讓我們假設(shè)我們的變量保存值 /views/users/。當(dāng)上面的代碼運行時,PHP 將檢查值 /views/users 是否等于 case 語句的值,在我們的例子中是 /views/users。因此,此條件將評估為 true,PHP 將調(diào)用文件 /views/users.php。如果條件計算結(jié)果為 false,PHP 將檢查下一個 case 語句,直到 switch 塊結(jié)束。

注意:每次 case 語句計算結(jié)果為 true,PHP 將繼續(xù)執(zhí)行以下 case 中的代碼陳述而無需評估這些案例陳述。在我們的例子中,PHP 還需要views/dep.php。為了避免這種“不良行為”,您必須在每個 case 語句后添加 break 語句。

現(xiàn)在將所有內(nèi)容放入我們的 index.php 文件中:

mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess

如您所知,我們首先將用戶請求存儲在 $request 變量中,然后在 switch 語句中使用它。為了代碼簡潔,我創(chuàng)建了一個變量來保存視圖目錄名稱。

您還會注意到另外兩件事:

  • “”和“/”當(dāng)用戶位于應(yīng)用程序或網(wǎng)站的根目錄時,用于匹配 site.com 以及 site.com/。
  • 有一個特殊的 case 語句,默認(rèn),匹配任何與其他情況不匹配的內(nèi)容,即當(dāng)路線未知時。

現(xiàn)在讓我們在視圖中添加一些虛擬數(shù)據(jù)。

在Views 文件

我們已經(jīng)在views 目錄中創(chuàng)建了所有文件。讓我們移動到這個目錄并在每個文件中添加一些內(nèi)容。

只需在每個文件中添加一些內(nèi)容:

RewriteEngine?On
RewriteCond?%{REQUEST_FILENAME}?!-f
RewriteRule?^(.*)$?index.php
RewriteEngine?On
RewriteBase?/folder/
RewriteRule?^index\.php$?-?[L]RewriteCond?%{REQUEST_FILENAME}?!-f
RewriteCond?%{REQUEST_FILENAME}?!-d
RewriteRule?.?/folder/index.php?[L]
location?/?{
????????try_files?$uri?$uri/?/index.php}
$request?=?$_SERVER['REQUEST_URI'];

如您所見,每個文件只包含一個標(biāo)題和一個段落。隨意添加您喜歡的任何內(nèi)容并測試路由器。

最終想法

在本教程中,您學(xué)習(xí)了如何從頭開始創(chuàng)建基本的路由系統(tǒng),包括:

  • 如何在項目根目錄創(chuàng)建一個名為index.php的文件。這是您的應(yīng)用程序的路由器。
  • 如何將所有傳入請求重定向到路由器。您可以在服務(wù)器的配置文件中執(zhí)行此操作。
  • 如何在路由器中使用 switch 語句創(chuàng)建路由系統(tǒng)。

以上是如何從頭開始為 PHP 應(yīng)用程序構(gòu)建路由系統(tǒng)的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

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)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) 如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。1.首先獲取當(dāng)前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進(jìn)行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態(tài)生成頁面OG標(biāo)簽優(yōu)化分享內(nèi)容展示;6.務(wù)必對用戶輸入進(jìn)行轉(zhuǎn)義以防止XSS攻擊。該方法無需復(fù)雜認(rèn)證,維護(hù)成本低,適用于大多數(shù)內(nèi)容分享需求。

PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 Jul 25, 2025 pm 08:45 PM

用戶語音輸入通過前端JavaScript的MediaRecorderAPI捕獲并發(fā)送至PHP后端;2.PHP將音頻保存為臨時文件后調(diào)用STTAPI(如Google或百度語音識別)轉(zhuǎn)換為文本;3.PHP將文本發(fā)送至AI服務(wù)(如OpenAIGPT)獲取智能回復(fù);4.PHP再調(diào)用TTSAPI(如百度或Google語音合成)將回復(fù)轉(zhuǎn)為語音文件;5.PHP將語音文件流式返回前端播放,完成交互。整個流程由PHP主導(dǎo)數(shù)據(jù)流轉(zhuǎn)與錯誤處理,確保各環(huán)節(jié)無縫銜接。

如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 Jul 25, 2025 pm 08:57 PM

要實現(xiàn)PHP結(jié)合AI進(jìn)行文本糾錯與語法優(yōu)化,需按以下步驟操作:1.選擇適合的AI模型或API,如百度、騰訊API或開源NLP庫;2.通過PHP的curl或Guzzle調(diào)用API并處理返回結(jié)果;3.在應(yīng)用中展示糾錯信息并允許用戶選擇是否采納;4.使用php-l和PHP_CodeSniffer進(jìn)行語法檢測與代碼優(yōu)化;5.持續(xù)收集反饋并更新模型或規(guī)則以提升效果。選擇AIAPI時應(yīng)重點評估準(zhǔn)確率、響應(yīng)速度、價格及對PHP的支持。代碼優(yōu)化應(yīng)遵循PSR規(guī)范、合理使用緩存、避免循環(huán)查詢、定期審查代碼,并借助X

PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 Jul 25, 2025 pm 08:27 PM

1.評論系統(tǒng)商業(yè)價值最大化需結(jié)合原生廣告精準(zhǔn)投放、用戶付費增值服務(wù)(如上傳圖片、評論置頂)、基于評論質(zhì)量的影響力激勵機(jī)制及合規(guī)匿名數(shù)據(jù)洞察變現(xiàn);2.審核策略應(yīng)采用前置審核 動態(tài)關(guān)鍵詞過濾 用戶舉報機(jī)制組合,輔以評論質(zhì)量評分實現(xiàn)內(nèi)容分級曝光;3.防刷需構(gòu)建多層防御:reCAPTCHAv3無感驗證、Honeypot蜜罐字段識別機(jī)器人、IP與時間戳頻率限制阻止灌水、內(nèi)容模式識別標(biāo)記可疑評論,持續(xù)迭代應(yīng)對攻擊。

PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機(jī)制 PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機(jī)制 Jul 25, 2025 pm 08:30 PM

PHP通過數(shù)據(jù)庫事務(wù)與FORUPDATE行鎖確保庫存扣減原子性,防止高并發(fā)超賣;2.多平臺庫存一致性需依賴中心化管理與事件驅(qū)動同步,結(jié)合API/Webhook通知及消息隊列保障數(shù)據(jù)可靠傳遞;3.報警機(jī)制應(yīng)分場景設(shè)置低庫存、零/負(fù)庫存、滯銷、補(bǔ)貨周期和異常波動策略,并按緊急程度選擇釘釘、短信或郵件通知責(zé)任人,且報警信息需完整明確,以實現(xiàn)業(yè)務(wù)適配與快速響應(yīng)。

如何用PHP結(jié)合AI做圖像生成 PHP自動生成藝術(shù)作品 如何用PHP結(jié)合AI做圖像生成 PHP自動生成藝術(shù)作品 Jul 25, 2025 pm 07:21 PM

PHP不直接進(jìn)行AI圖像處理,而是通過API集成,因為它擅長Web開發(fā)而非計算密集型任務(wù),API集成能實現(xiàn)專業(yè)分工、降低成本、提升效率;2.整合關(guān)鍵技術(shù)包括使用Guzzle或cURL發(fā)送HTTP請求、JSON數(shù)據(jù)編解碼、API密鑰安全認(rèn)證、異步隊列處理耗時任務(wù)、健壯錯誤處理與重試機(jī)制、圖像存儲與展示;3.常見挑戰(zhàn)有API成本失控、生成結(jié)果不可控、用戶體驗差、安全風(fēng)險和數(shù)據(jù)管理難,應(yīng)對策略分別為設(shè)置用戶配額與緩存、提供prompt指導(dǎo)與多圖選擇、異步通知與進(jìn)度提示、密鑰環(huán)境變量存儲與內(nèi)容審核、云存

超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 Jul 27, 2025 am 04:31 AM

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

PHP集成AI語音識別與轉(zhuǎn)寫 PHP會議記錄自動生成方案 PHP集成AI語音識別與轉(zhuǎn)寫 PHP會議記錄自動生成方案 Jul 25, 2025 pm 07:06 PM

選擇合適AI語音識別服務(wù)并集成PHPSDK;2.用PHP調(diào)用ffmpeg將錄音轉(zhuǎn)為API要求格式(如wav);3.上傳文件至云存儲并調(diào)用API異步識別;4.解析JSON結(jié)果并用NLP技術(shù)整理文本;5.生成Word或Markdown文檔完成會議記錄自動化,全過程需確保數(shù)據(jù)加密、訪問控制與合規(guī)性以保障隱私安全。

See all articles