我有这个代码显示了上一页中的所有目录。删除字符串的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