簡體   English   中英

PHP擺脫斜線完整路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM