我有這個代碼顯示了上一頁中的所有目錄。刪除字符串的3個第一個字符
$dirs = array_filter(glob('../*'), 'is_dir');
foreach ($dirs as $nav) {
echo "<li><a href='$nav'>".$nav."</a></li>";
}
輸出是這樣的:
- ../Gėlės
- ../dddd
- ../images
是否有一個函數或方法可以使用從輸出字符串中刪除../
前綴?
謝謝。
我有這個代碼顯示了上一頁中的所有目錄。刪除字符串的3個第一個字符
$dirs = array_filter(glob('../*'), 'is_dir');
foreach ($dirs as $nav) {
echo "<li><a href='$nav'>".$nav."</a></li>";
}
輸出是這樣的:
是否有一個函數或方法可以使用從輸出字符串中刪除../
前綴?
謝謝。
你可能會得到各種古怪的字符串操作的答案,所以這裏是合適的工具:
基名 - 路徑返回尾隨名組件
這是你在做什麼:
basename($nav)
此外,使用GLOB_ONLYDIR
標誌作爲第二個參數在3210電話,如果你只想要目錄。
根據php手冊應該是'basename($ nav).PHP_EOL',雖然不錯! –
@PedroLobito:不,只有當您需要行尾時,它不會以呈現的HTML顯示,但會使HTML源代碼難以閱讀。 – AbraCadaver
好吧,一直在學習...... Tks! –
當然,你可以使用str_replace,但我會用AbraCadaver's答案去...
$dirs = array_filter(glob('../*'), 'is_dir');
foreach ($dirs as $nav) {
$nav = str_replace("../", "", $nav);
echo "<li><a href='$nav'>$nav</a></li>";
}
您可以減去開始3個字符是這樣的:
echo substr($string, 3);
我就知道!哈哈!他們來了! – AbraCadaver
AbraCadavere被投票通過,我仍然有5分鐘等待,直到我能接受它。感謝您的幫助:)我可以問問爲什麼basename是正確的答案,但不是substr? – Giedrius
1. _basename - 返回path_的尾部名稱組件,正是您在做的。 2.如果下一次您需要刪除'path/tmp /'而不是'../'或者您不知道路徑將提前什麼時候? 'basename()'仍然沒有修改它。 – AbraCadaver