• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP函数计算两个文件的相对路径_php

php 搞代码 3年前 (2018-06-21) 78次浏览 已收录 0个评论

 

  新浪有个面试题目:写一个php函数算出两个文件的相对路径 ?php //计算出 c.php相对于e.php的相对路径应该是../../12/34 $a = /a/b/c/d/e.php; $b = /a/b/12/34/c.php; getpathinfo($a, $b); function getpathinfo( $a, $b ) { $a

  新浪有个面试题目:写一个php函数算出两个文件的相对路径

  

  //计算出 c.php相对于e.php的相对路径应该是../../12/34

  $a = '/a/b/c/d/e.php';

  $b = '/a/b/12/34/c.php';

  getpathinfo($a, $b);

  function getpathinfo( $a, $b ) {

  $a2array = explode('/', $a);

  $b2array = explode('/', $b);

  $pathinfo = '';

  for( $i = 1; $i <= count($b2array)-2; $i++ ) {

  $pathinfo.=$a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/';

  }

  print_R($pathinfo);

  }

  ?>

  还有个比较复杂的方法不太完善思路是正确的可以研究

  

  $a = 'aa/bb/cc/dd/a.php';

  $b ='aa/bb/11/22/33/b.php';

  //写一个函数,数出二个文件的相对路径。

  function GetNum($variant,$variant2){

  $pth1 = null;

  $pth2 = null;

  $tmp = array();

  //分别判断路径下面的文件是不是存在.

  if(is_file($variant) && is_file($variant2)){

  $len1 = count($pth1 = explode('/',dirname($variant)));

  $len2 = count($pth2 = explode('/',dirname($variant2)));

  $maxlen = max($len1,$len2);

  for($i=1;$i<$maxlen;$i++){

  if($pth1[$i] != $pth2[$i] && isset($pth1[$i])){

  if(isset($pth2[$i])) $tmp[] = $pth2[$i];

  }else{

  $tmp[] = $pth2[$i];

  $pathe .= '../';

  }

  }

  return $pathe.implode('/',$tmp).'/'.basename($variant2);

  }else{

  return '路径不合法!';

  }

  }

  print_r(GetNum($a,$b));

  ?>

欢迎大家阅读《PHP函数计算两个文件的相对路径_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址