3

パスのような文字列があるとします

$path = '/path/to/../../up/something.txt';

それを解析し、ディレクトリ ups (../) なしで URL を取得する方法が PHP に組み込まれていますか?

例えば

$path = parsePath('/path/to/../../up/something.txt'); // /up/something.txt
4

2 に答える 2

6
realpath($path);

ドキュメント

于 2010-02-26T01:21:19.303 に答える
0

PHPrealpath()はクールですが、ファイルシステムにアクセスせずに理解したい場合はどうすればよいでしょうか?

../などで計算されたパスを実際のパスに戻すことができるこの関数を作成しました。

おそらくすべてのパス コマンドを処理できるわけではないので、別のコマンドを実装する必要があると思われる場合はお知らせください。

public function resolvePath($path) {

    while (strstr($path, '../')) {
        $path = preg_replace('/\w+\/\.\.\//', '', $path);
    }

    return $path;

}

このユーザーから借用した正規表現は、ノートに投稿されています。

于 2010-04-07T07:35:39.883 に答える