回答
需要任何的正則表達式,而使用ltrim()
與/.
。就像這樣:
echo "/".ltrim("../../../somefile/here/", "/.");
此輸出:
/somefile/here/
請注意,前導斜槓很重要 - 它總是指根目錄。 – BoltClock 2010-09-07 19:00:43
是的,這就是爲什麼我特意附加它。用戶可以刪除它,如果需要,仍然可以成功剝離所有'/'和'.' – shamittomar 2010-09-07 19:05:33
'/ .foo'怎麼辦? – Gumbo 2010-09-07 19:12:55
您可以使用realpath()功能PHP提供。然而,這需要文件存在。
@無論誰低估,請介意說明一下?閱讀手冊,這是做他想做的,因爲文件存在。 – 2010-09-07 19:01:52
而且它會做與..相關的事情。程序員OFTEN miss是某個* nix系統上的「..」,可能會導致符號鏈接,因此..可能實際上將其移動到磁盤的完全不同的部分。 – 2010-09-07 19:26:37
如果我理解正確你:
$path = "/".str_replace("../","","../../../somefile/here/");
這會失敗**在'/../../../ somefile/here /'上,並且會返回'// somefile/here' – shamittomar 2010-09-07 19:02:19
(\.*/)*(?<capturegroup>.*)
第一場小組賽點,隨後斜線的無限次數的一些數量;第二組是你感興趣的人。這會剝去你的主要斜槓,所以請加一個斜線。
請注意,這絕對不能證明您的主要字符串斜槓和句點不是明顯愚蠢的。但是,它不會剝離你的路徑上的領先點,就像第一組明顯的([./])*
模式;它發現最長的一串點和斜線以斜線結尾,所以如果它以點開始,它不會傷害到你的真實路徑。
請注意明顯的「/」。 ltrim()策略將從目錄名稱中刪除前導點,如果您的第一個目錄有一個 - 完全合理,那麼這是壞的,因爲前導點用於隱藏目錄。
你可以嘗試:
<?php
$str = '../../../somefile/here/';
$str = preg_replace('~(?:\.\./)+~', '/', $str);
echo $str,"\n";
?>
+1謝謝工作的好 – 2014-08-23 16:03:01
- 1. 使用正則表達式刪除相對路徑斜槓
- 2. 正則表達式和正斜槓
- 3. 正則表達式和反斜槓
- 4. 刪除所有斜槓正則表達式
- 5. 正則表達式用於刪除標點符號但忽略正斜槓?
- 6. 正則表達式Python - 反斜槓
- 7. PHP正則表達式無反斜槓
- 8. 正則表達式有3個斜槓
- 9. URL正則表達式 - 從文件名和URL結尾刪除尾部斜槓?
- 10. 正則表達式可以刪除所有非字母數字,單個句點和單斜槓
- 11. 排除在Java正則表達式正斜槓話
- 12. 正則表達式,刪除最後一個正斜槓後的所有內容
- 13. 16位數和正斜槓的正則表達式?
- 14. 正則表達式和正斜槓加上URL中的字符
- 15. 與正向和反斜槓正則表達式
- 16. 排除Javascript中的文字反斜槓正則表達式
- 17. 無法使用正則表達式在字符串中刪除反斜槓.net
- 18. Java正則表達式value.split(「\\。」),「反斜槓點」按字符劃分?
- 19. AWK gensub正則表達式反斜槓0和反斜槓1不靈
- 20. JavaScript正則表達式只添加正斜槓的規則
- 21. 用正斜槓替換反斜槓javascript中的正則表達式
- 22. preg_replace正則表達式需要正斜槓打開和關閉?
- 23. 正則表達式刪除JavaScript的雙斜槓(/)風格的評論
- 24. 正則表達式允許任何字符除了反斜槓
- 25. JavaScript正則表達式匹配字符串,除非前面加反斜槓
- 26. Javascript正則表達式:用一個斜槓替換多個正斜槓
- 27. 正則表達式的數字和斜槓
- 28. 可選正斜槓後正確的param正則表達式
- 29. Perl正則表達式:用雙反斜槓替換所有反斜槓
- 30. 正則表達式反斜槓和雙引號與例外
這是沒用的問題。無論如何,它不會給你一條真正的道路。是什麼讓你覺得你需要這樣一個替代品?它是用於文件系統路徑還是虛擬Web服務器資源? – 2010-09-07 19:08:59
原因然後可以做$ _SERVER ['DOCUMENT_ROOT']。newpath; – Mike 2010-09-07 19:10:38
從哪裏得到這些帶點的路徑?它在您的腳本中被硬編碼,現在您想要重寫它以與DOCUMENT_ROOT一起使用? – 2010-09-07 19:12:48