例如:文件A 的路徑是 /home/web/lib/img/cache.php
文件B的路徑是 /home/web/api/img/temp/show.php
那麼,文件A相對於文件B的路徑是 ../../lib/img/cache.php
function getRelativePath($urla,$urlb){ /*******第一步:獲取兩個文件的相同路徑並去掉*****/ //獲取路徑名 $a_dirname=dirname($urla); //$a_dirname=/home/web/lib/img/ $b_dirname=dirname($urlb); //$b_dirname=/home/web/api/img/temp //去掉左邊的"/" $a_dirname=trim($urla,"/"); $b_dirname=trim($urlb,"/"); // $a_dirname=trim($a_dirname,"/"); // $b_dirname=trim($b_dirname,"/"); echo $a_dirname,",",$b_dirname."<br>"; //分割路徑名 $a_arr=explode("/", $a_dirname); $b_arr=explode("/", $b_dirname); $count=0; //獲取相同路徑部分的個數 $num=min(count($a_arr),count($b_arr)); //去除相同的部分 for ($i=0;$i<$num;$i++) { if ($a_arr[$i]==$b_arr[$i]){ unset($a_arr[$i]); $count++; } else{ break; } } // print_r($a_arr); /******將相同部分用"../代替"並重新組合成相對路徑******/ $relativepath=str_repeat("../", $count).implode("/", $a_arr); echo $relativepath; } $urla="/home/web/lib/img/cache.php"; $urlb="/home/web/api/img/temp/show.php"; getRelativePath($urla,$urlb)