用php求两个文件的相对路径

网上又找到一个很好很强大的函数!

<?php /** * 用php求两个文件的相对路径,如: * 文件一:/usr/local/log/test/test.log * 文件二:/usr/local/apache/conf/logs/tests.log * 文件二相对文件一的路径为../../apache/conf/logs/tests.log * 简朴说是文件一中写文件二的路径为../../apache/conf/logs/tests.log * 实现代码如下: */ function compara_path($path_a, $path_b) { // 切割路径. $array_a = explode('/', $path_a); $array_b = explode('/', $path_b); // 从数组中删除最后的文件,剩下的全为文件夹名称. $file_a = array_pop($array_a); $file_b = array_pop($array_b); // 子目次个数. $a_len = count($array_a); $b_len = count($array_b); // 轮回求出第几个目次差异. for ($i = 0; $i < $a_len; $i++) { if ($array_a[$i] != $array_b[$i]) { // 当$i=2时,跳出轮回 break; } } // 求出相对路径. $com_path = ""; for ($j = 0; $j < $a_len - $i; $j++) { // 当$i=2时,$j<1 $com_path .= '../'; } for ($i; $i < $b_len; $i++) { $com_path .= $array_b[$i] . '/'; } $com_path .= $file_b; echo $com_path; } $path_1 = "/usr/local/log/test/test.log"; $path_2 = "/usr/local/apache/conf/logs/tests.log"; echo compara_path($path_1, $path_2); /** * 输出: ../../apache/conf/logs/tests.log */ ?>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7967.html