计算/a/b/c/d/e.php /a/b/12/34/c.php的父亲路径为/a/b
- <?php
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $params=getParams(2);
- $toParh=trim($params[0]);
- $fromParh=trim($params[1]);
- $toParh=str_replace("\\", "/", $toParh);
- $fromParh=str_replace("\\", "/", $fromParh);
-
-
- if(substr($toParh, 0,1)=="/" || substr($fromParh, 0,1)=="/")
- {
- if(!substr($toParh, 0,1)=="/")
- {
-
- error_msg("两个参数必须都是绝对路径或者相对路径\n");
- }
- if(!substr($fromParh, 0,1)=="/")
- {
-
- error_msg("两个参数必须都是绝对路径或者相对路径\n");
- }
- }
-
- if(preg_match("/^[a-z]:/i", $toParh) || preg_match("/^[a-z]:/i", $fromParh))
- {
- if(!preg_match("/^([a-z]):/i", $toParh,$matchs1))
- {
-
- error_msg("两个参数必须都是绝对路径或者相对路径\n");
- }
- if(!preg_match("/^([a-z]):/i", $fromParh,$matchs2))
- {
-
- error_msg("两个参数必须都是绝对路径或者相对路径\n");
- }
- if($matchs1[1]!=$matchs2[1])
- {
-
- error_msg("两个参数必须都是在同一个盘里\n");
- }
- }
-
- echo getRalationPath($toParh,$fromParh);
- function getRalationPath($toParh,$fromParh)
- {
- $toParh=str_replace("\\", "/", $toParh);
- $fromParh=str_replace("\\", "/", $fromParh);
- $topaths=split("/",$toParh);
- $fromparhs=split("/",$fromParh);
-
- array_pop($fromparhs);
- array_pop($topaths);
-
- $relationPath="";
-
- $n=count(array_diff_assoc ($fromparhs,$topaths));
- for($i=0;$i< $n;$i++)
- {
- $relationPath.="../";
- }
-
- $digdir=array_diff_assoc ($topaths,$fromparhs);
- $relationPath.=join("/",$digdir);
- return $relationPath;
- }
-
-
-
-
- function getParams($paramNum)
- {
- $in=file_get_contents("in.txt");
- if($in===FALSE){
- error_msg("cannot read in.txt,please check in.txt exists\n");
- }
- $in=preg_replace("/(\s+)/i", " ", $in);
-
- $parms=split(" ",trim($in));
- if($parms===FALSE)
- {
- error_msg("cannot get param from in.txt\n");
- }
- if(count($parms) < $paramNum)
- {
- error_msg("it needs $paramNum params\n");
- }
- return $parms;
- }
-
-
-
-
-
- function output($msg,$isClean=false)
- {
- if($isClean)
- {
- $handle = fopen('out.txt', 'w');
- fclose($handle);
- }
- error_log($msg."\n", 3, "out.txt");
- }
-
-
-
-
- function error_msg($msg,$is_exit=true)
- {
- if($is_exit)
- die($msg."\n");
- else
- echo $msg."\n";
- }
- ?>
本文转自yifangyou 51CTO博客,原文链接: 本文转自yifangyou 51CTO博客,原文链接:,如需转载请自行联系原作者
,如需转载请自行联系原作者