php 两个文件之间的相对路径的计算方法
2015-10-12 10:11
686 查看
php 两个文件之间的相对路径的计算方法
比如:
文件A 的路径是 /home/web/lib/img/cache.php
文件B的路径是 /home/web/api/img/show.php
那么。文件A相对于文件B的路径是 ../../lib/img/cache.php,即文件B 訪问 文件A的相对路径。
function getRelativePath
demo
比如:
文件A 的路径是 /home/web/lib/img/cache.php
文件B的路径是 /home/web/api/img/show.php
那么。文件A相对于文件B的路径是 ../../lib/img/cache.php,即文件B 訪问 文件A的相对路径。
function getRelativePath
<?php /** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径 * @param String $path1 * @param String $path2 * @return String */ function getRelativePath($path1, $path2){ $arr1 = explode('/', $path1); $arr2 = explode('/', $path2); // 获取同样路径的部分 $intersection = array_intersect_assoc($arr1, $arr2); $depth = 0; for($i=0,$len=count($intersection); $i<$len; $i++){ if(!isset($intersection[$i])){ $depth = $i; break; } } // 将path2的/ 转为 ../,path1获取后面的部分。然后合拼 $tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1, $depth)); $relativePath = implode('/', $tmp); return $relativePath; } ?>
demo
<?php $path1 = '/home/web/lib/img/cache.php'; $path2 = '/home/web/api/img/show.php'; echo getRelativePath($path1, $path2); // ../../lib/img/cache.php ? >
相关文章推荐
- PHP核心编程(一) 之语法、变量与常量
- YII2.0配置index.php入口文件至根目录
- phpcms v9文章页调用点击量方法
- PHP MySQL的安装与配置详解
- 53 PHP文件处理(六)文件上传--总结---细说php
- PHP 之 FastCGI 与 mod_php 详解
- 利用PHP的Popen实现RRDTOOL作图的动态输出
- php——phpAjax
- PHP第一季视频教程.李炎恢.学习笔记(五)(第3章 操作符与控制结构(1)(2))
- 一个php+js实时显示时间问题
- PHP MySQL的安装与配置详解
- PHPCMS笔记之幻灯片 查询所选栏目有图片的文章并控制显示数量
- PHPStorm下调试使用CURL抓取数据中文乱码的一种可能
- php timeZone设置和他影响的函数
- zend studio 12.0 怎么汉化?
- php后台<?php?>和<?php的区别
- php导出excel
- php函数---sprintf()
- 禁用cookie后session是如何设置的
- php数组和字符串之间转换