50分问一个路径相加问题

hong01982 2009-12-02 05:00:34
如何将两个路径正确地加在一起呢?

如:d:/web/test/abc + ../1.html

应该等于: d:/web/test/1.html
-------------------------------------------

如:d:/web/test/abc + ../../1.html

应该等于: d:/web/1.html
-------------------------------------------

如:d:/web/test/abc + 1.html

应该等于: d:/web/test/abc/1.html
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hong01982 2009-12-02
  • 打赏
  • 举报
回复
感谢唠叨,结贴。
t240034137 2009-12-02
  • 打赏
  • 举报
回复
没看懂是什么意思!
xuzuning 2009-12-02
  • 打赏
  • 举报
回复
人家问什么,你就答什么。不要搅乱人家的思路
function foo($p1, $p2) {
$a1 = split('/', $p1);
$a2 = split('/', $p2);

foreach($a2 as $v) {
if($v == '..') array_pop($a1);
$t = array_shift($a2);
}

return join('/', array_merge($a1, array($t)));
}

echo foo('d:/web/test/abc', '../1.html');
echo '<br>';
echo foo('d:/web/test/abc', '../../1.html');


d:/web/test/1.html
d:/web/1.html
codeyell-com 2009-12-02
  • 打赏
  • 举报
回复
显示肯定还是带..的

但是你要把他当路径操作的时候,效果是一样的。

难道你是要用来显示的?

[Quote=引用 3 楼 hong01982 的回复:]
PHP codeecho$path="d:/web/test/abc"."/../1.html";

结果:d:/web/test/abc/../1.html
[/Quote]
江南昆虫 2009-12-02
  • 打赏
  • 举报
回复
$path1 = 'd:/web/test/abc';
$path2 = '../../1.html';
$path = realpath($path1.'/'.$path2);


用realpath,文件必须存在,否则是false
geme_over 2009-12-02
  • 打赏
  • 举报
回复
这要看是字符串处理,还是fopen之类的文件操作。如果是字符串处理是不相等的,文件操作的结果是一样的
hong01982 2009-12-02
  • 打赏
  • 举报
回复

echo $path="d:/web/test/abc"."/../1.html";


结果:d:/web/test/abc/../1.html
dzxccsu 2009-12-02
  • 打赏
  • 举报
回复
什么意思?
$a='d:/web/test/abc ';
$b='../1.html ';
$c='d:/web/test/1.html ';???
codeyell-com 2009-12-02
  • 打赏
  • 举报
回复
你在地址栏输入:d:/web/test/abc + ../
自动就会跳到d:/web/test/
不用转换就能用。

php里:
$path="d:/web/test/abc"."/../1.html";就可以找到d:/web/test/1.html

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧