php求两个文件的相对路径

<?php

$a = 'aa/bb/cc/dd/a.php';
$b = 'aa/bb/11/22/33/b.php';
function getRelativePath($a, $b) {
	$aArr = explode ( '/', $a );
	$bArr = explode ( '/', $b );
	
	$aLen = count ( $aArr );
	$bLen = count ( $bArr );
	$maxLen = $aLen > $bLen ? $aLen : $bLen;
	
	$i = 0;
	$bPath = $aPath = array();
	while ( true ) {
		if ($aArr [$i] == $bArr [$i]) {
			$i ++;
		} else {
			break;
		}
	}
	
	for($j = $i; $j < $maxLen; $j ++) {
		if (isset ( $aArr [$j] )) {
			if ($j < $aLen - 1) {
				$aPath [] = $aArr [$j];
			} else {
				$aPath [] = basename ( $a );
			}
		}
		
		if (isset ( $bArr [$j] ))
			$bPath [] = '..';
	}
	
	$pathArr = array_merge ( $bPath, $aPath );
	
	return implode ( '/', $pathArr );
}

echo getRelativePath ( $a, $b );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值