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

目次
ルーティングの仕組み
プロジェクトのセットアップ
すべての HTTP リクエストをルーターにリダイレクトする方法
Apache を使用したリダイレクト
使用したリダイレクトNGINX
ルーティング システムの作成方法
ビュー ファイルにダミー データを追加します。
最終的な考え
ホームページ バックエンド開発 PHPチュートリアル PHP アプリのルーティング システムを最初から構(gòu)築する方法

PHP アプリのルーティング システムを最初から構(gòu)築する方法

Nov 29, 2024 pm 04:23 PM
php

PHP 開発の旅の始まりにいる方は、 おそらく、URL 內(nèi)で完全なファイル名を使用して、 アプリケーション (server/contact.php など)。心配しないでください、私たちは皆そうやって始めました、そしてそれが私たちの學(xué)習(xí)方法です。

今日は、ファイル內(nèi)のファイルのナビゲーション方法を向上させるお手伝いをしたいと思います。 応用。ルーティングはどのような場合でも重要なので、ここではルーティングについて説明します。 現(xiàn)代のアプリケーション。あなたの一歩を踏み出すのに役立ちます プロフェッショナルな PHP 開発。

ルーティング システムは、HTTP をマッピングするだけです。 リクエストをリクエスト ハンドラ (関數(shù)またはメソッド) に送信します。言い換えれば、それは を使用せずにアプリのさまざまな部分に移動またはアクセスする方法を定義します。 ファイル名を入力する必要があります。これは、作成または設(shè)定することで実行できます。 ルート(またはパス)。たとえば、ルート サーバー/コンタクトを使用すると、contact.php ファイルにアクセスできます。

截屏2024-11-29 16.11.16.png

ルーティングの仕組み

まず最初に、內(nèi)容を思い出させてください。ルーティングです。ルーティング アプリをより良い方法で構(gòu)造化し、亂雑なものを取り除くことができます URL。これらは、優(yōu)れたルーティング システムによって提供される 2 つの主な機(jī)能です。

  • 各受信リクエストに対して実行するアクションを定義します。
  • SEO に適した URL を生成します (例: /views/users の代わりにviews/user.php?all).

ルーティング システムを?qū)g行するには、ルータは、 エントリーファイルをアプリに追加します。デフォルトでは、このエントリ ファイルの名前は、index.php です。ファイル內(nèi)では、[switch](https://www.php.net/manual/en/control-structions.switch.php) または [match](https://www.php.php) を使用してルーティング システムを定義します。 net/manual/en/control- Structures.match.php) ステートメント.

最後に重要なことですが、すべてのリクエストをルーターにリダイレクトする必要があります。これは、PHP サーバーの構(gòu)成ファイルで行われます。

プロジェクトのセットアップ

次に進(jìn)む前に、プロジェクトがどのようなものになるかを見てみましょう:

PHP アプリのルーティング システムを最初から構(gòu)築する方法ファイル構(gòu)造

以下のシェル コマンドを使用して、 project:

mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
  • .htaccess: ディレクトリレベルの Apache 設(shè)定ファイル。 NGINX サーバーを使用する場合は必要ありません。
  • index.php: これはルーターとプロジェクトのエントリ ファイルです。すべての受信リクエストはここにリダイレクトされます。
  • ビュー: このフォルダーにはプロジェクトのすべての UI が保持されます。

すべての HTTP リクエストをルーターにリダイレクトする方法

リダイレクトは PHP サーバーで行われると前述しました。 設(shè)定ファイル。したがって、次のことを行うかどうかに応じて、いくつかの調(diào)整を行う必要があります。 Apache または NGINX サーバーを使用します。

Apache を使用したリダイレクト

ここでは、プロジェクトのルートに既に作成した .htaccess ファイルを簡単に使用できます。以下のディレクティブを追加します:

mkdir?php-routing?&?cd?php-routingtouch?index.php?.htaccess
  • 行 1: Apache サーバーのランタイム書き換えエンジンをアクティブにします。
  • 行 2: 物理ファイルへのアクセスを制限します。
  • 行 3: 今後のリクエストをすべてリダイレクトします。 Index.php.

注: サイトまたはアプリがサーバーのルートにある場合 (または仮想ホストがない場合)、.htaccess は次のようになります。

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

上記のコードで、/folder/ をサイトが含まれるフォルダーの名前に置き換えます。

使用したリダイレクトNGINX

デフォルトの構(gòu)成ファイルの名前は 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 ディレクティブは、その場所のブロックに一致する URI へのリクエストについて、最初に $uri (または $uri/) を試行し、ファイルが存在する場合は、ファイルを提供します。それ以外の場合は、フォールバック オプション (index.php) が使用されます。そして、この最後の動作が私たちが望んでいることです。

変更後にサーバーをリロードします。

ルーティング システムの作成方法

これで、ルーティングがどのように機(jī)能するかがわかりました。すべてのリクエストを送信しても ルーターに。ここで、index.php にルーターのコードを記述します。

まず、HTTP リクエスト文字列を保持する変數(shù)を作成します。

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

この変數(shù)は比較に役立ちます。多くのルート (パス) を使用して、適切なビュー インターフェイスを呼び出します。

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

ここで何が起こっているのでしょうか? switch ステートメントは、同じ式 (変數(shù)) に対する一連の if ステートメントに似ています。式が switch 式の値と一致する値に評価される case ステートメントが見つかった場合にのみ、コードが実行されます。これをわかりやすく説明しましょう。

変數(shù)が値 /views/users/ を保持していると考えてみましょう。上記のコードが実行されると、PHP は値 /views/users が case ステートメントの値 (この場合は /views/users) と等しいかどうかをチェックします。したがって、この條件は true と評価され、PHP はファイル /views/users.php を呼び出します。條件が false と評価された場合、PHP は switch ブロックの終わりまで次の case ステートメントをチェックします。

注: case ステートメントが true と評価されるたびに、PHP は次の case でコードを?qū)g行し続けます。これらの case ステートメントを必要とせずにステートメントを評価することができます。この場合、PHP には views/dep.php も必要です。この「悪い動作」を回避するには、各 case ステートメントの後に Break ステートメントを追加する必要があります。

次に、すべてをindex.php ファイルにまとめてみましょう。

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

すでにご存知のとおり、ユーザー リクエストを $request 変數(shù)に保存することから始めて、それを switch ステートメントで使用します。コードをきれいにするために、ビュー ディレクトリ名を保持する変數(shù)を作成しました。

他にも 2 つの點(diǎn)にも注目してください:

  • '' と '/' の両方ユーザーがアプリまたは Web サイトのルートにいる場合に、site.com と site.com/ を照合するために使用されます。
  • 照合するための特別なケース ステートメント、default があります。他のケースで一致しなかったもの、つまりルートが不明な場合。

ビューにダミー データを追加しましょう。

ビュー ファイルにダミー データを追加します。

views ディレクトリにすべてのファイルがすでに作成されています。このディレクトリに移動して、各ファイルにコンテンツを追加しましょう。

各ファイルにコンテンツを追加します。

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'];

ご覧のとおり、各ファイルにはタイトルと段落だけが含まれています。好きなコンテンツを自由に追加して、ルーターをテストしてください。

最終的な考え

このチュートリアルでは、次のような基本的なルーティング システムを最初から作成する方法を?qū)W習(xí)しました。

  • プロジェクトのルートにindex.phpという名前のファイルを作成する方法。これはアプリのルーターです。
  • すべての受信リクエストをルーターにリダイレクトする方法。これは、サーバーの構(gòu)成ファイルで行います。
  • ルーターで switch ステートメントを使用してルーティング システムを作成する方法。

以上がPHP アプリのルーティング システムを最初から構(gòu)築する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPで現(xiàn)在のセッションIDを取得する方法は? PHPで現(xiàn)在のセッションIDを取得する方法は? Jul 13, 2025 am 03:02 AM

PHPで現(xiàn)在のセッションIDを取得する方法は、session_id()関數(shù)を使用することですが、session_start()を呼び出して正常に取得する必要があります。 1。Session_start()を呼び出してセッションを開始します。 2。Session_Id()を使用してセッションIDを読み取り、ABC123DEF456GHI789に似た文字列を出力します。 3.返品が空の場合は、Session_start()が欠落しているかどうか、ユーザーが初めてアクセスするか、セッションが破壊されるかを確認(rèn)します。 4.セッションIDは、ロギング、セキュリティ検証、およびクロスレクエスト通信に使用できますが、セキュリティに注意する必要があります。セッションが正しく有効になり、IDが正常に取得できることを確認(rèn)してください。

PHPストリングからサブストリングを取得します PHPストリングからサブストリングを取得します Jul 13, 2025 am 02:59 AM

PHP文字列からサブストリングを抽出するには、Substr()関數(shù)を使用できます。これはSyntax substr(String $ string、int $ start、?int $ length = null)であり、長さが指定されていない場合は、端まで傍受されます。中國語などのマルチバイト文字を処理する場合、MB_Substr()関數(shù)を使用して、文字化けコードを避ける必要があります。特定のセパレーターに従って文字列を傍受する必要がある場合は、exploit()を使用するか、strpos()とsubstr()を組み合わせて、ファイル名拡張子またはドメイン名を抽出するなどの実裝できます。

PHPコードの単體テストをどのように実行しますか? PHPコードの単體テストをどのように実行しますか? Jul 13, 2025 am 02:54 AM

unittestinginphpinvolvevidevifignivision like like fike fikionsionsormethodstocatchsearlyandensureliablerefactoring.1)setupphpunitviacomposer、createatestdirectory、and configureautoloadandphpunit.xml.2)

文字列をPHPの配列に分割する方法 文字列をPHPの配列に分割する方法 Jul 13, 2025 am 02:59 AM

PHPでは、最も一般的な方法は、exploit()関數(shù)を使用して文字列を配列に分割することです。この関數(shù)は、指定された區(qū)切り文字を介して文字列を複數(shù)の部分に分割し、配列を返します。構(gòu)文はエクスプロイト(セパレーター、文字列、制限)であり、セパレーターはセパレーターであり、文字列は元の文字列であり、制限はセグメントの最大數(shù)を制御するオプションのパラメーターです。たとえば、$ str = "Apple、Banana、Orange"; $ arr = Explode( "、"、$ str);結(jié)果は["apple"、 "banaです

JavaScriptデータ型:プリミティブ対參照 JavaScriptデータ型:プリミティブ対參照 Jul 13, 2025 am 02:43 AM

JavaScriptデータ型は、プリミティブタイプと參照タイプに分割されます。プリミティブタイプには、文字列、數(shù)字、ブール、ヌル、未定義、シンボルが含まれます。値は不変であり、コピーは値を割り當(dāng)てるときにコピーされるため、互いに影響を與えません。オブジェクト、配列、関數(shù)などの參照タイプはメモリアドレスを保存し、同じオブジェクトを指す変數(shù)は互いに影響します。 TypeofとInstanceOFを使用してタイプを決定できますが、TypeOfNullの歴史的な問題に注意してください。これらの2種類の違いを理解することは、より安定した信頼性の高いコードを書くのに役立ちます。

c c Jul 15, 2025 am 01:30 AM

STD :: Chronoは、現(xiàn)在の時(shí)間の取得、実行時(shí)間の測定、操作時(shí)點(diǎn)と期間の測定、分析時(shí)間のフォーマットなど、時(shí)間の処理にCで使用されます。 1。STD:: Chrono :: System_Clock :: now()を使用して、現(xiàn)在の時(shí)間を取得します。 2。STD:: CHRONO :: STEADY_CLOCKを使用して実行時(shí)間を測定して単調(diào)さを確保し、DurateR_CASTを通じてミリ秒、秒、その他のユニットに変換します。 3。時(shí)點(diǎn)(Time_Point)と期間(期間)は相互運(yùn)用可能ですが、ユニットの互換性と時(shí)計(jì)エポック(エポック)に注意を払う必要があります

PHPの別のページにセッション変數(shù)を渡す方法は? PHPの別のページにセッション変數(shù)を渡す方法は? Jul 13, 2025 am 02:39 AM

PHPでは、セッション変數(shù)を別のページに渡すために、キーはセッションを正しく開始し、同じ$ _Sessionキー名を使用することです。 1.各ページにセッション変數(shù)を使用する前に、session_start()と呼ばれ、スクリプトの前面に配置する必要があります。 2。$ _Session ['username'] = 'Johndoe'などのセッション変數(shù)を設(shè)定します。 3。別のページでsession_start()を呼び出した後、同じキー名を介して変數(shù)にアクセスします。 4.各ページでsession_start()が呼び出されることを確認(rèn)し、事前にコンテンツの出力を避け、サーバーのセッションストレージパスが書き込み可能であることを確認(rèn)してください。 5.SESを使用します

PHPは環(huán)境変數(shù)をどのように処理しますか? PHPは環(huán)境変數(shù)をどのように処理しますか? Jul 14, 2025 am 03:01 AM

toaccessenvironmentvariablesinphp、usegetenv()または$ _envsuperglobal.1.getenv( 'var_name')retievessaspecificvariable.2。$ _ en v ['var_name'] AccessESSESESSVARIABLESIFVARIABLES_ORDERINPHP.INIINCLUDES "E" .SETVARIABLESVIACLIWITHVAR = ValuePhpscript.php、inapach

See all articles