>백엔드 개발 >PHP 튜토리얼 >php代码实现 两个目录之间的相对路径

php代码实现 两个目录之间的相对路径

WBOY
WBOY원래의
2016-06-23 13:36:17859검색

/** * 获取两个路径之间的相对路径 * @param $path1  路径1 * @param $path2  路径2 * @return 返回相对路径或者false(在同一个目录下) */function relativePath($path1, $path2){    // 将各自的路径(不包含文件)存放到array数组中    $arr1 = explode('/', dirname($path1));    $arr2 = explode('/', dirname($path2));    // 遍历数组    $len = count($arr2);    for ($i = 0; $i < $len; $i++) {        if ($arr1[$i] != $arr2[$i]) {            break;        }    }    if ($i < $len) {        // 不是相同的目录,返回相对路径        $return = array_fill(0, $len - $i, ".."); // 用'..'去填充相同的$len-$i个路径        $relativePath = array_merge($return, array_slice($arr1, $i));  // 取出$i开始的不同的路径        return implode('/', $relativePath);  // 数组变成字符串返回    } else {        // 相同的目录,直接返回false        return false;    }}dirname():去掉路径中的文件,只留目录array_fill():array_merge():array_slice():











성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.