ホームページ php教程 php手册 PHPのパス問題の解決策

PHPのパス問題の解決策

Jun 13, 2016 pm 12:44 PM
perl php そして について 含む 導入 解決 パス


PHPのパス問題の解決策 はじめに:
PERL と PHP のインクルード パスは、主にオペレーティング システムと WEB サーバーに関連する常に難しい問題です。このパスの問題を非常にインテリジェントに解決することは不可能です。 PERL と比較すると、PHP のパスははるかに優れており、解決がはるかに簡単です。これは、特定のステートメントで絶対パスを使用する必要がある PERL とは異なり、PHP の相対パスは PHP プログラムのあらゆる場面で使用できるため、移植が非常に複雑になります。 。

これに基づいて、以下に説明するように、PHP で絶対確実なソリューションを設計しました。

原則:
相対パスを使用しますが、相対パス内では絶対パスを使用します (少し複雑ですが、後で詳しく説明します)。第一に、移植性が保証され、第二に、簡単に変更できます。 、定式化され、明確に構造化されているため、簡単に拡張できます。

手順の詳細な説明:
まず、プログラムのルート ディレクトリを決定します。ただし、一般的には、それが WEB サーバーの仮想ディレクトリではないことに注意してください。このディレクトリ下のサブディレクトリは相対的なパスであり、URL 下のディレクトリの仮想サブディレクトリと同じです。
2. 定義したプログラムのルート ディレクトリの下の各サブディレクトリに settings.php を作成し (必要に応じて、実際にはすべてではありません)、その中に変数または定数を定義します (スコープが比較的大きいため、定数の方が適しています) ) (APPROOT など) ですが、この APPROOT は絶対パスではなく、指定したプログラムのルート ディレクトリを基準としたディレクトリの相対パスです。
3. このディレクトリ内のすべてのプログラム エントリ ファイル (つまり、他のファイルを含む最初のファイル、またはブラウザでの直接参照を許可するファイル) に、 require_once('settings.php ') を記述します。 ; ただし、この文をすべてのインクルード ファイルに追加しないことをお勧めします。実際には、 if(!define(APPROOT))define(APPROOT, '. ./..' と記述できるため、追加することができます)。 ); このタイプのステートメントは再定義を防ぎます。
4. 直接的または間接的に他のファイルをインクルードする場合は、include(APPROOT.$path); と記述できます。$path は、指定したプログラム ルート ディレクトリを基準としたインクルード ファイルの絶対パスです。パス。

原則:
決定されたプログラムのルート ディレクトリは相対パスですが、特定のディレクトリの場所はそのルート ディレクトリを基準とした絶対パスです。この 2 つの組み合わせが、特定のファイルの相対パスになります。プログラムのルート ディレクトリへ。たとえば、ディレクトリ c:wwwrootapp は指定したプログラムのルート ディレクトリであり、c:wwwrootappaindex.php と c:wwwrootappbinc.php という 2 つのファイルがあります。サブディレクトリ a の場合、APPROOT は '..'、プログラム ルート ディレクトリの場合、inc.php の絶対パスは $path='/b/inc.php' で、この 2 つの組み合わせは '../b /inc.php」。 inc.phpをindex.phpに含めたい場合はinclude('../b/inc.php');と書かないといけないのですが、このパスは先ほど結合したAPPROOT.$pathではないでしょうか?


結論:
上記の処理の後、すべてのパスは完全に均一になります。少し冗長なのは、各ディレクトリで APPROOT を定義する必要があることですが、このディレクトリのみが必要であるということです。各ディレクトリに定義する必要があります。 settings.php に一度定義するだけで十分です。プログラム全体に、index.php などのエントリ ファイルが 1 つだけあり、他のすべてのファイルがこの唯一のエントリ ファイルに直接または間接的に含まれている場合は、index.php が存在するディレクトリに settings.php を追加するだけで済みます。一度だけでOKです。 Delphi プロジェクトを実行し、プロジェクト ファイルを研究した友人がいる場合は、プログラムにメイン エントリ ファイルが 1 つしかないという先ほど述べた状況が Delphi プロジェクトとよく似ていることがわかるでしょう。Delphi にはメイン プログラム ファイル (dpr) が 1 つしかないためです。 file) 、残りはすべてユニット ファイルまたはリソース ファイルであり、単独で実行することはできません。 PHP では、この状況が発生した場合、APPROOT を 1 回定義し、メイン プログラム ファイルの最初の文に require_once('settings.php'); を記述するだけで、後続のすべてのインクルードを含めることができます (APPROOT.$ パス)。 ; 、この「プログラムのルートディレクトリからの相対ファイルの絶対パスを含む」$path を書かない限り、問題がないことは保証されています。

私はこの方法を複数回使用しましたが、結果は非常に良好です。また、JSP の WEB-INFO でパスがどのように定義されているかを参照することもできます。

これは変更に応じて変更されない定型的な計画です。より良い計画がある場合は、お気軽に議論してください。わからないことがあれば、お気軽にお尋ねください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

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 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles