Beyond the Void
BYVoid
PHP 計算相對路徑
本文正體字版由OpenCC轉換

在PHP編程中,經常會遇到相對路徑的計算,然而標準庫中沒有提供相應的函數,我只好自己編寫了一個函數用於計算相對路徑。

<?
function pathconvert($cur,$absp)//當前文件,目標路徑
{
	$cur = str_replace('\\','/',$cur);
	$absp = str_replace('\\','/',$absp);
	$sabsp=explode('/',$absp);
	$scur=explode('/',$cur);
	$la=count($sabsp)-1;
	$lc=count($scur)-1;
	$l=max($la,$lb);
	
	for ($i=0;$i<=$l;$i++)
	{
		if ($sabsp[$i]!=$scur[$i])
			break;
	}
	$k=$i-1;
	$path="";
	for ($i=1;$i<=($lc-$k-1);$i++)
		$path.="../";
	for ($i=$k+1;$i<=($la-1);$i++)
		$path.=$sabsp[$i]."/";
	$path.=$sabsp[$la];
	return $path;
}

$path=pathconvert("/home/web/test/a.php","/home/data/d.png");
// $path="../../data/d.png"
?>

上次修改時間 2017-02-03

相關日誌