2

PHPには、realpath()と同様のロジックを実行できるが、ファイルシステムに存在しない可能性のあるファイルに対して実行できる関数はありますか?明らかにリンクなどを解決することはできませんが、私の目標は、ユーザーが指定したパスが/.././を考慮せずに、特定のディレクトリ(またはそのディレクトリのサブディレクトリ)にあるかどうかを確認することです。私自身の問題のパスタイプ。ファイルが存在しないときにfalseが返されない場合は、realpathの呼び出しは完璧です。

4

2 に答える 2

1

懸念がファイルのみである場合は、次を試してください。

function unrealpath($path){
  $rp = realpath(dirname($path));
  if( false === $rp )
    return false;
  return $rp.basename($path);
}

ディレクトリが存在するかどうかについて懸念がある場合、これは機能しません。

于 2012-02-24T13:58:54.110 に答える
0

/../ のみを削除する必要がある場合、自己記述関数はそれほど難しくありません。文字列を配列に分割し、配列を反復処理して、値を新しい配列に挿入するだけです。.. を押すと、新しい配列に挿入された最後の要素が削除されます。次に、2 番目の配列をマージして文字列に戻します。

于 2012-02-21T22:49:03.073 に答える