文件的路径对比

这是注释加工别人的代码的例子。

<?php
    /*
    * @return String 对比后的路径
    * @param String $m 拼装前的路径1
    * @param String $n 拼装前的路径2
    * @param Array $d1 被处理成数组的路径1  array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" }
    * @param Array $d2 被处理成数组的路径2  array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(2) "12" [3]=> string(2) "34" }
    * @param Int $i 循环次数
    * @param Int $j 循环次数
    * @param String $path 拼装后的路径
    * String函数  explode() 函数把字符串打散为数组。
    * Array函数 count() 函数计算数组中的单元数目或对象中的属性个数。
    * String函数 rtrim() 函数移除字符串右侧的空白字符或其他预定义字符。
    */
    //程序运行过程
    /*
    第一步:处理传递进来的两个字符串路径
    $d1 = Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h );
    $d2 = Array ( [0] => a [1] => b [2] => e [3] => f [4] => s [5] => g [6] => d );
    第二步:去除相同部分
    $d1 = Array ( [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h );
    $d2 = Array ( [2] => e [3] => f [4] => s [5] => g [6] => d );
    第三步:拼装路径--把相同部分替代为../
    $path = "../../"
    第四步:拼装路径--把不相同部分替代为$a路径
    $path = "../../c/d/e/f/g/h/";
    第五步:返回去除了最后边/的路径
    $path = "../../c/d/e/f/g/h/";
    */
    //定义对比路径函数
    function comparison($m,$n){
    //第一步:处理传递进来的两个字符串路径
    $d1 = explode("/",trim(dirname($m),"/")); //处理并拆分数组
    $d2 = explode("/",trim(dirname($n),"/")); //处理并拆分数组
    //第二步:去除相同部分
    for($i=0;$i<count($d1);$i++){
        //当不相等的时候停止循环
        if($d1[$i]!=$d2[$i]){
            break;
        }
    }
    //拼装路径
    $path="";
    //第三步:拼装路径--把相同部分替代为../
    //此处的$i为相等部分的路径
    for($j=0;$j<$i;$j++){
        //把d2相等部分的路径都替代为  ../
        $path.="../";

    }
    //第四步:拼装路径--把不相同部分替代为$a路径
    //此处的$i为相等部分的路径
    for($j=$i;$j<count($d1);$j++){
        //把不同路径的部分以路径1替代
        $path.="{$d1[$j]}/";
    }
    //第五步:返回去除了最后边/的路径
    //返回一个去除了路径最后面的  /  路径
    return rtrim($path,"/");
    //返回一个未去除了路径最后面的  /  路径
    //return $path;
 }
    //路径1
    $a='/a/b/c/d/e/f/g/h/c.php';
    //路径2
    $b='/a/b/e/f/s/g/d/c.php';
    //输出
    var_dump(comparison($a,$b));


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值