使用PHP计算两个路径的相对路径
<html>
<body>
<?php
function relativePath($aPath, $bPath) {
$aArr = explode('/', $aPath); //explode函数用于切分字符串,返回切分后的数组,此处用'/'切分字符串
$bArr = explode('/', $bPath);
$aDiffToB = array_diff_assoc($aArr, $bArr); //array_diff_assoc()用于获取A数组与B数组之间元素的差集,Key和Value都不相同视为不同元素,此处返回在A数组中且与B数组不相同的元素
$count = count($aDiffToB);
$path = '';
for($i = 0; $i < $count - 1; $i++){
$path .= '../';
}
$path .= implode('/', $aDiffToB); //implode()用于使用指定字符串连接数组元素,此处返回用'/'连接数组元素后的字符串
return $path;
}
echo relativePath('/a/b/c/d/a.php', '/a/b/1/2/b.php');
?>
</body>
</html>
页面输出
. ./. ./c/d/a.php
相关推荐
-
php zend 相对路径问题
<?php define ('P_S', PATH_SEPARATOR); define ('ROOT', "../"); set_include_path(ROOT .P_S .'Zend' .P_S .ROOT.get_include_path()); require_once ROOT.'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Db'); Zend_Loader::loadClass('Zend_Config_Ini')
-
php求两个目录的相对路径示例(php获取相对路径)
求两个目录的相对路径,不限制路径深度 复制代码 代码如下: /** * 输出$b相对于$a的相对路径($a) * 不限限制路径深度,没有做什么优化,只是实现功能 */function getPath($a, $b){ $aArr = explode('/', dirname($a)); $bArr = explode('/', dirname($b)); $aLen = count($aArr); $bLen = count($bArr); $len = max($aLen, $bLen); $
-
php绝对路径与相对路径之间关系的的分析
php中好像不能像asp那样用"/"表示根目录,代之以$_SERVER['DOCUMENT_ROOT'],其它则相同:../表示向上一层../表示当前层.假如现在a/b/c/s.php要调用根目录下的 /bb/s2.txt,则: $RootDir = $_SERVER['DOCUMENT_ROOT']; $fireDir = "$RootDir/bb/s2.txt"; 或者:"../../../bb/s2.txt"表示向上返回到b再向上到a再向上
-
使用PHP求两个文件的相对路径
复制代码 代码如下: function compare($ph1,$ph2){ $ret = ''; $_f1Arr = explode("/",$ph1); $_f2Arr = explode("/",$ph2); $f1 = array_pop($_f1Arr); $f2 = array_pop($_f2Arr); for($i=0;$i<count($_f1Arr);$i++){ if($_f1Arr[$i]
-
一道求$b相对于$a的相对路径的php代码
php面试题的题目: $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; //计算出 $b 相对于 $a 的相对路径应该是 ../../c/d php面试题的答案: 复制代码 代码如下: function getRelative($a,$b) { $arr = explode("/",$a); $brr = explode("/",$b); $c = count($arr)-2; $d = count($brr)-2; /
-
php计算两个文件相对路径的方法
本文实例讲述了php计算两个文件相对路径的方法.分享给大家供大家参考.具体如下: 一.问题: 写一个php函数算出两个文件的相对路径.例如$a="/a/b/c/d/e.php"; $b="/a/b/12/34/c.php",B相对于A的相对路径是什么? 二.解决方法: <?php /** * 求$b相对于$a的相对路径 * @param string $a * @param string $b * @return string */ function getR
-
Java实现计算图中两个顶点的所有路径
目录 前言 抽象数据模型 代码实现数据模型 计算两个顶点之间路径算法 总结 前言 最近公司的项目上有个需求,还挺有分享价值的,这边做个记录.需求大致如下,下面的一个流程图,点击条件线上选择的内容,必须是前面配置过的节点,如果不是,需要在保存的时候做强校验提示. 需求其实很明确,抽象出来就是获取图中两个顶点之间所有可达路径的顶点集合,大家可以思考下,该如何实现?这里面涉及到了数据结构中图相关知识,而数据结构算法也是本事最大的弱项,还是废了我一番工夫. 抽象数据模型 实际上,看到这个需求就很容易想到
-
JavaScript计算两个日期时间段内日期的方法
本文实例讲述了JavaScript计算两个日期时间段内日期的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /************************* * 计算两个日期时间段内所有日期 * * @param value1 * 开始日期 YYYY-MM-DD * @param value2 * 结束日期 * return 日期数组 */ function dataScope(value1, value2
-
批处理bat计算两个时间差
这个是脚本代码[保存为etime.bat放在当前路径下即可: 复制代码 代码如下: :etime <begin_time> <end_time> <return> rem 所测试任务的执行时间不超过1天 // 骨瘦如柴版 setlocal&set be=%~1:%~2&set cc=(%%d-%%a)*360000+(1%%e-1%%b)*6000+1%%f-1%%c&set dy=-8640000 for /f "delims=: t
-
MSSQL 计算两个日期相差的工作天数的语句
复制代码 代码如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDay] GO --计算两个日期相差的工作天数 CREATE FUNCTION f_WorkDay( @dt_begin datetime, --计算的开始日期 @dt_end date
-
javaScript 计算两个日期的天数相差(示例代码)
一:计算两个日期相差的天数 比如: str1 = "2002-01-20" str2 = "2002-10-11" 怎样用javaScript计算出str1与str2之间相差的天数? 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"&
-
JAVA计算两个日期相差的实例
在Java开发物流或是其他功能的时候会用到两个日期 相差多天的数据,所以整理了一下备用.调用方式: 复制代码 代码如下: long date1 = getDateTime("20121201");//可改成自己的日期类型,但以 "20121212"这种格式 long date2 = getDateTime("20121212"); int day = dateInterval(date1, date2); System.out.print
-
Java计算两个程序运行时间的实例
一.获取系统当前时间 long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTime = System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); //输出程序运行时间 二.以纳秒为单位计算 // 第二种是以纳秒
-
java计算两个日期之前的天数实例(排除节假日和周末)
如题所说,计算两个日期之前的天数,排除节假日和周末.这里天数的类型为double,因为该功能实现的是请假天数的计算,有请一上午假的为0.5天. 不够很坑的是每个日期都要查询数据库,感觉很浪费时间. 原则: 1.节假日存放在数据库中 实现步骤: 1.循环每个日期 2.判断每个日期是否为节假日或者为周末 3.若不是节假日和周末,天数+1 代码: public double calLeaveDays(Date startTime,Date endTime){ double leaveDays = 0;
-
计算两个字符串最大公有子串
背景 对算法一直应用的比较少,最近看到一些典型的算法想练练手,想看看到底有多么让人讨厌.其实发现算法都有一定的套路,一般并不是临时凭空想出来的,大都建立在一些已经存在的经典算法知识以及数据结构上.换句话来说,如果某些玩法之前未接触过,那么让你在短时间内临时想出来还是有一定难度的.这有点类似项目经验,如果曾经做过一个CRM系统,下次再碰到它时你就轻松很多,如果你挑战的是一个你从未遇到过的系统,你只能凭已有知识去强吃. 计算两个字符串最大公共子串 这个也是经常遇到到,给出两个任意长度的字符串,输出最
随机推荐
- 详解Java中super的几种用法并与this的区别
- Mysql误操作后利用binlog2sql快速回滚的方法详解
- Mysql数据库绿色版安装教程 解决系统错误1067的方法
- JS动态修改iframe高度和宽度的方法
- 开始研究Ajax. 第一天
- 利用纯Vue.js构建Bootstrap组件
- 菜鸟蔡之Ajax复习第三篇(Ajax之无刷新登录)
- JavaScript模板入门介绍
- 你应该知道的21个Java核心技术
- jquery dialog open后,服务器端控件失效的快速解决方法
- MyBatis一对一映射初识教程
- 详解Java如何实现图像灰度化
- 深入解析int(*p)[]和int(**p)[]
- PHP读写文件的方法(生成HTML)
- Android中监听短信的两种方法
- Android编程设计模式之模板方法模式详解
- angularJS实现动态添加,删除div方法
- python 实现将txt文件多行合并为一行并将中间的空格去掉方法
- 详解Java语言中一个字符占几个字节?
- 易语言使用超文本显示新浪天气预报的代码