2
我正在研究一個小函數來接收一個url並根據它駐留的位置返回一個相對路徑。PHP pathinfo被quert字符串中的url欺騙。任何解決方法?
如果url在查詢字符串中包含路徑,則pathinfo
將返回不正確的結果。這證明通過下面的代碼:
$p = 'http://localhost/demos/image_editor/dir_adjuster.php?u=http://localhost/demos/some/dir/afile.txt';
$my_path_info = pathinfo($p);
echo $p . '<br/><pre>';
print_r($my_path_info);
echo '</pre>';
該代碼輸出:
http://localhost/demos/image_editor/dir_adjuster.php?u=http://localhost/demos/some/dir/afile.txt
Array
(
[dirname] => http://localhost/demos/image_editor/dir_adjuster.php?u=http://localhost/demos/some/dir
[basename] => afile.txt
[extension] => txt
[filename] => afile
)
這顯然是錯誤的。任何解決方法?
謝謝!這得到'[dirname]'正確,這給我帶來了麻煩,但'[extension]'和'[filename]'仍然不正確。無論如何,我的問題已經解決了,因爲我擔心'[dirname]',但是我會讓問題開放一個小時,看看是否有人能夠正確地獲取所有組件。 – 2010-06-10 10:27:39
@Majid啊,當然,這是一個網址。 parse_url()應該更好地工作:http://www.php.net/parse_url – 2010-06-10 10:31:48
謝謝Pekka。是!所以,我首先使用parse_url()來獲得一個合適的'path',然後我會使用pathinfo()。您可能希望將您的解決方案整合到您的答案中,以便稍後閱讀此答案的人更有用,但如果您覺得不值得付出努力,我會編輯該問題幷包含您的方法。 – 2010-06-10 11:31:28