有沒有辦法將看起來像../../../
的路徑轉換爲path/path/path
,我想創建一個搜索類,但卻想到任何人都可以通過../
格式而不是path/
,並返回找到的文件的列表。將'../../'轉換爲'路徑/路徑'
我開始通過使用preg_replace()
找到並替換所有東西,直到它匹配傳遞路徑中的$_SERVER['DOCUMENT_ROOT']
。但唯一解決了path/path/path
問題。
我該如何處理../../../
問題?
有沒有辦法將看起來像../../../
的路徑轉換爲path/path/path
,我想創建一個搜索類,但卻想到任何人都可以通過../
格式而不是path/
,並返回找到的文件的列表。將'../../'轉換爲'路徑/路徑'
我開始通過使用preg_replace()
找到並替換所有東西,直到它匹配傳遞路徑中的$_SERVER['DOCUMENT_ROOT']
。但唯一解決了path/path/path
問題。
我該如何處理../../../
問題?
我知道,但我的方法抓住'$ path'變量並在遞歸搜索中使用它。 – Eli 2012-03-09 21:56:19
不是很明確的要求,但可能這會爲你工作:
$path = '../../..';
$path = str_replace(realpath($path) . '/', '', getcwd());
嗯,問題不在於我,它是誰曾經使用這個腳本需要的安全方法。我知道如何處理它,但其他人可能會上傳腳本並獲得服務器所有者不希望的輸出 – Eli 2012-03-09 21:54:40
你需要''../在你的搜索路徑?最好的方法是禁止使用它並顯示一些錯誤消息,而不是試圖使其可用。 – 2012-03-09 21:19:31