PHP,最简单的方法找到一个绝对路径的相对路径
问题描述:
比方说,我有一个绝对路径:/myproject/web/uploads/myfolder/myfile.jpg
PHP,最简单的方法找到一个绝对路径的相对路径
我寻找到确定的相对路径的FOM的绝对路径的一部分,就像这样:
<?php
echo relative_path('/myproject/web/uploads/myfolder/myfile.jpg', 'web/uploads');
// print "myfolder/myfile.jpg"
答
如果我明白,你只是想将部件从绝对路径是在给定部分之后:
function relative_path($absolute, $part) {
$pos = strpos($absolute, $part);
return substr($absolute, $pos + strlen($part) + 1);
}
+0
优雅,如此简单,做得好! – julesbou
答
如何:
function relative_path ($absolute, $part) {
return (($rel = strstr($absolute, $part)) !== FALSE) ? ltrim(substr($rel, strlen($part)),'/') : FALSE;
}
返回具有相对路径的字符串(如上所述)或FALSE
上失败。
这个函数决不是万无一失的,因为任何试图执行上述任务的函数都是可以的。考虑以下几点:
$absolute = "/dir/someplace/dir/someplace/somedir/file.ext";
$part = "dir/someplace";
// Returns "dir/someplace/somedir/file.ext" when you may in fact want "somedir/file.ext"
relative_path($absolute, $part);
我怀疑你真正需要做的是在这里重新思考什么你实际上是试图做...
+0
作品,但我更喜欢简单的@ arnaud576875,无论如何感谢 – julesbou
我不明白,你怎么能从路径的一部分关联到相对路径? – powtac
请在你的理解中定义相对路径 – ajreal
答案是什么:'relative_path('/ myproject/web/uploads/myfolder/backup/2/web/uploads/myfolder/myfile.jpg','web/uploads') ;' – webbiedave