好的,我制作了一个文件系统查看器。我被困在这个,我有一切工作正常,除了当我点击返回按钮在我已经做了。
所以我有一根像这样的绳子
开发
脚本将转到文件夹/developer/_social_development
但是当我想返回时,我按后退按钮,它将返回到顶部目录,所以它会一直返回到第一个'/‘,例如http://www.grubber.co.nz/update/index.php?dir=../,我使用这段代码返回到最后一个不能工作的页面。
$dir = $_GET['dir'];
$marker = "/";
echo $str = (substr($dir, 0, (strpos($dir, $marker) + strlen($marker)))); 它所做的就是将所有内容移到第一个'/‘,但我希望它转到最后一个'/’,例如,是这个/developer/_social_development,当我单击前一个文件夹时,我希望它是/developer,字符串也会根据您所在的文件夹的不同而改变,所以我不能只删除一组字符。
谢谢你的帮助
发布于 2012-11-14 09:26:51
使用另一种方法str pos,你可以使用爆炸。在这里,完整的代码:
$dir = '../developer/_social_development';
$marker = "/";
$arrDir = explode('/', $dir);
array_pop($arrDir);
$dir2 = implode( '/', $arrDir);
echo $dir2;结果:./开发人员
发布于 2012-11-14 09:22:49
与其使用strpos()来给出字符串中字符第一次出现的位置,不如使用斯特拉彻(),这将给出字符串中字符最后出现的位置。
发布于 2012-11-14 09:23:46
这不是一个非常好的解决方案,就我个人而言,我会使用RegEx方法,但是如果您想使用str位置,您可以这样做:
$dir = $_GET['dir'];
$marker = "/";
echo $str = strrev(substr(strrev($dir), (strpos($dir, $marker) + strlen($marker))));或者基于RegEx的解决方案:
$dir = $_GET['dir'];
echo $str = preg_replace("/\/[^\/]+$/", "", $dir);https://stackoverflow.com/questions/13375932
复制相似问题