将字符串A开头 与字符串B开头 相同的部分去掉。
比如
$a = '/www/proj-asd/app/home/news';
$b = '/www/proj-asd/app/_view';
那么需要提取出来的部分就是 home/news
笨方法是:
$a = '/www/proj-asd/app/home/news';
$b = '/www/proj-asd/app/_view';
echo getRelPath($a, $b); // home/news
function getRelPath($a, $b)
{
$a = strtr($a, '\\', '/');
$b = strtr($b, '\\', '/');
$a = explode('/', $a);
$b = explode('/', $b);
foreach ($a as $i=>$av) {
$bv = $b[$i];
if ($av===$bv) {
unset($a[$i]);
}else{
break;
}
}
return implode('/', $a);
}
先把题目理解成路径匹配(而非纯字符串)
那么
array_diff_assoc
可能是题主想要的方法更新 解决 @AlanZhang 提的bug
http://3v4l.org/eB8Km