年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1608|回复: 0

PHP实现比较两个文件的相对位置

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2016-1-2 20:49:15 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2016-1-2 20:53 编辑

    [PHP] 纯文本查看 复制代码
    <?php
    	$path1 = "c:/windows/system32/web/etc/file1.txt";
    	$path2 = "c:/windows/system/calc.exe";
    	function abspath($p1, $p2){
    		$result = "";
    		// 1、取路径分割字符串
    		// c:/windows/system32/web/etc
    		$p1 = dirname($p1);
    		// ["c:", "windws", "system32", "web", "etc"]
    		$p1 = explode("/", $p1);
    		$p2 = dirname($p2);
    		$p2 = explode("/", $p2);
    		// 2、去掉重复部分
    		$n = min(array(count($p1), count($p2)));
    		for ($i = 0; $i < $n; $i++){
    			if($p1[$i] == $p2[$i]){
    				// 去掉数组中的"c:"、"windows"
    				unset($p1[$i]);
    				unset($p2[$i]);
    			}else{
    				break;
    			}
    		}
    		// 3、还原相对层级
    		$result = str_repeat("../", count($p1));
    		// 4、拼装相对位置
    		$result .= implode("/", $p2);
    		return $result;
    	}
    	// 输出"../../../system"
    	// path2相对path1位置为向上3级目录再进入system目录
    	echo abspath($path1, $path2);
    输出结果:
    ../../../system
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-11-21 23:42 , Processed in 0.045054 second(s), 18 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表