2


0

許容されるパスは何ですか?

以下のステートメントを使用して、実行中のスクリプトのディレクトリ名を返します。

print dirname(__FILE__);

バックスラッシュを使用して次のようなものを出力します。

www\EZPHP\core\ezphp.php

質問:

バックスラッシュを含むパスは、すべての主要なオペレーティングシステムで許容されますか? そうでない場合、Windows、Linux、Ubuntuなどのすべての主要なオペレーティングシステムで許容されるように、スラッシュまたはバックスラッシュでパスをどのように構築する必要がありますか?

ありがとうございました。

4 Answer


2


私はそれをスラッシュに正規化します。 Windowsはスラッシュを受け入れます。これは* nixシステムのデフォルトです

print str_replace( '\\'、 '/'、dirname( FILE ));


2


スラッシュは良いルートです。

また、DIRECTORY_SEPARATORという定数があり、コードが実行されているシステムのディレクトリセパレーターを返します。

すべてのアプリのパスを記述するときはスラッシュを使用し、パスを返す呼び出しの結果を爆発させるときは常にDIRECTORY_SEPARATORを使用して、常に適切なパスを確保できるようにします。

HTH、Jc


1


現実には、それは重要ではありません…​ これは、dirname()が必ずしもバックスラッシュを返すとは限らないためです。OSが使用するディレクトリ区切り文字を返します。 つまり、dirnameが返すものは、いずれにせよ使用すべきセパレーターです。

それ以外は、スラッシュを使用するだけです。PHPはWindowsとLinuxで正しく解釈します。


1


dirname()は常にOSフォーマットでパスを返します。

dirname('c:/x'); // returns 'c:\'
dirname('c:/Temp/x'); // returns 'c:/Temp'
dirname('/x'); // returns '\'