PHP 인터뷰 질문:
$a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php' // 계산 $a에 대한 $b의 상대 경로는 ../../c/d여야 합니다.
php 인터뷰 질문에 대한 답변:
코드 복사 코드는 다음과 같습니다.
function getRelative($a,$b) {
$arr =explore("/",$a)
$brr =explore(" /" ,$b);
$c = count($arr)-2;
$d = count($brr)-2;
//2를 빼는 이유는 파일명이 뒤에 있지 않습니다.
//1개는 배열의 인덱스가 0부터 시작한다는 것입니다. 이는 배열의 첫 번째 차원 수보다 1이 적습니다.
$e = ($c>$d) $ c:$d;
$str1 = $str2 = '';
for ($j=0;$j<=$e;$j ) {
$cur_a = isset($arr[$ j]) ? $ arr[$j] : '';
$brr[$j]) ? $brr[$j] :
if ($cur_a == $ cur_b) {
계속
} else {
if ($j <= $c)
{
$str1.='/'.$cur_a
} 🎜>if ($ j <= $d )
{
$str2.="../";
}
}
}
return $str2.substr( $str1,1, strlen($str1))
}