[英]PHP get rid of slashes full path
我有一條完整的道路,我想刪除其中的某些等級。 例如
/home/john/smith/web/test/testing/nothing/
我想擺脫4個等級,所以我得到
/test/testing/nothing/
這樣做有什么好處?
謝謝
一個簡單的解決方案是將路徑切成多個部分,然后對數組進行操作,然后再將其重新粘在一起:
join("/", array_slice(explode("/", $path), 5));
當然,如果要刪除該特定路徑,也可以使用正則表達式:
preg_replace('~^/home/john/smith/web/~', '', $path);
一個建議的話。 如果您的應用程序經常使用路徑,那么創建一個代表路徑的類以封裝邏輯可能是個好主意,而不是在各處進行大量的字符串操作。 如果您混合使用絕對路徑和相對路徑,則這是一個特別好的主意。
為何大家都對不需要完全匹配的內容使用正則表達式; CPU周期非常寶貴!
str_replace會更有效:
$s_path = '/home/john/smith/web/test/testing/nothing/';
$s_path = str_replace('john/smith/web/test/', '', $s_path);
並使用realpath()
解析任何'../../'
路徑。
並記住dirname(__FILE__)
獲取CWD,而rtrim()
對於刪除尾部斜杠非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.