首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php,substr编辑

php,substr编辑
EN

Stack Overflow用户
提问于 2012-11-14 09:17:05
回答 4查看 78关注 0票数 0

好的,我制作了一个文件系统查看器。我被困在这个,我有一切工作正常,除了当我点击返回按钮在我已经做了。

所以我有一根像这样的绳子

开发

脚本将转到文件夹/developer/_social_development

但是当我想返回时,我按后退按钮,它将返回到顶部目录,所以它会一直返回到第一个'/‘,例如http://www.grubber.co.nz/update/index.php?dir=../,我使用这段代码返回到最后一个不能工作的页面。

代码语言:javascript
复制
$dir = $_GET['dir'];
$marker = "/";
echo $str = (substr($dir, 0, (strpos($dir, $marker) + strlen($marker)))); 

它所做的就是将所有内容移到第一个'/‘,但我希望它转到最后一个'/’,例如,是这个/developer/_social_development,当我单击前一个文件夹时,我希望它是/developer,字符串也会根据您所在的文件夹的不同而改变,所以我不能只删除一组字符。

谢谢你的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-14 09:26:51

使用另一种方法str pos,你可以使用爆炸。在这里,完整的代码:

代码语言:javascript
复制
$dir = '../developer/_social_development';
$marker = "/";
$arrDir = explode('/', $dir);
array_pop($arrDir);
$dir2 = implode( '/', $arrDir);
echo $dir2;

结果:./开发人员

票数 2
EN

Stack Overflow用户

发布于 2012-11-14 09:22:49

与其使用strpos()来给出字符串中字符第一次出现的位置,不如使用斯特拉彻(),这将给出字符串中字符最后出现的位置。

票数 0
EN

Stack Overflow用户

发布于 2012-11-14 09:23:46

这不是一个非常好的解决方案,就我个人而言,我会使用RegEx方法,但是如果您想使用str位置,您可以这样做:

代码语言:javascript
复制
$dir = $_GET['dir'];
$marker = "/";
echo $str = strrev(substr(strrev($dir), (strpos($dir, $marker) + strlen($marker))));

或者基于RegEx的解决方案:

代码语言:javascript
复制
$dir = $_GET['dir'];
echo $str = preg_replace("/\/[^\/]+$/", "", $dir);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13375932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档