1

問題:

どちらも、スクリプトを実行している OS に応じて正しいdirname()スラッシュを含むパスをrealpath()返します。

\移植可能な方法で (PHP API を使用して) パスを作成したいので、/スラッシュを心配する必要はありません。

realpath()FALSEパスが存在しない場合に返します。したがって、次のことを行うオプションではありません。

define("MY_PATH", realpath(__DIR__."/myNewDirToCreate");

別のケースでdirname()は、次のオプションはありません。

define("MY_FILE", "I/should/use/an/abstract/path/definition.file");

ファイルへのパスではなく、parten ディレクトリを返すためです。regexいずれかまたはstring置換を使用して、自分で問題を処理できました。しかしPHP、これはクロスプラットフォーム環境であり、豊富な PHP ドキュメントにいくつかの機能が欠けていることは確かです。

質問:

  • 可能であれば、スクリプトが実行されて いるOSに関係なく、パスを作成するにはどうPHP APIすればよいですか? 例えばpath("no/matter/what/os/are/you/running/this.file\or\what\slashes\you\are\using");
4

1 に答える 1

4

という名前の定数がありますDIRECTORY_SEPARATOR

$path_to_file = $directory . DIRECTORY_SEPARATOR . $file

ここに文書化されています:http://php.net/manual/en/dir.constants.php#constant.directory-separator

PHP はこれを内部で処理するため、Windows ではスラッシュを取得する場合がありますが、PHP 内で問題なく動作することに注意してください。

于 2013-06-13T21:23:28.527 に答える