我有这段代码,显示上一页中的所有目录。
$dirs = array_filter(glob('../*'), 'is_dir');
foreach ($dirs as $nav) {
echo "<li><a href='$nav'>".$nav."</a></li>";
}
输出如下:
是否有可用于从输出字符串中删除../
前缀的函数或方法?
谢谢。
答案 0 :(得分:6)
你可能会得到各种古怪的字符串操作答案,所以这是正确的工具:
basename - 返回路径的尾随名称组件
这正是你在做什么:
basename($nav)
另外,如果您只想要目录,请使用GLOB_ONLYDIR
标志作为glob()
调用中的第二个参数。
答案 1 :(得分:1)
当然,您可以使用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>";
}
答案 2 :(得分:1)
你可以从头开始减去3个字符:
echo substr($string, 3);