読者です 読者をやめる 読者になる 読者になる

アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

正規化した絶対パスを取得する方法

/hoge/fuga/../piyo/./yomo/

/hoge/piyo/yomo

…といい感じに変換してくれる関数はないものか…と思ったら、ありました。

参考:realpath - php
http://php.net/manual/ja/function.realpath.php

$path = "/hoge/fuga/../piyo/./yomo/";

// 変数$newpathに正規化したパスを入れる
$newpath = realpath($path);

これでOK。
ただし、権限を持っていない場合や存在しないパスについてはFALSEが返されるので、
引っかかりそうな場合は手動で処理する必要があるかもしれません。
("/./"を"/"に置換、"/*/../"を"/"に置換…というように)