相対パス法に関する小さな研究
リリース: 2016-07-25 09:02:37
タイトル通り、2つのパスの相対パスを求めてレンガを求めましょう!
- /**
- * 2 つのパスの相対パスを見つけます
- * @param string $patha path a
- * @param string $pathb path b
- * @author Joychao
- * @link http://www. Joychao .cc
- * @return string 相対パス
- */
- function getRelativePath($patha,$pathb){
- $arr_a=explode('/',trim(dirname($patha),'/'));
- $arr_b =explode('/',trim(dirname($pathb),'/'));
- $n=min(count($arr_a),count($arr_b));//ループする最短パスを使用します
- $ flag =true;//マークビット [マークに交差がないかどうか]
- for($i=0;$i if($arr_a[$i]==$arr_b[ $i]) {
- unset($arr_a[$i],$arr_b[$i]);//
- }else{
- if($i==0)
- $flag=false;/ の前の同じ部分を削除します。 /2 つのパスはありません 交差点
- Break;//ループを停止します
- }
- }
-
- $str=$flag?str_repeat('../',count($arr_b)+1):'/';//交差部分がない場合、それはルート ディレクトリです。" /"[Linux の状況、Windows が自動的に変更できる]
- return $str.join('/',$arr_a);//結合して return
- }
- // TEST
-
- $a ='/a/b/c/d /e.php';
- $b ='/a/b/12/34/c.php';
- echo 'パス a:'.$a ;
- echo '
Path b:'. $b;
- echo '
パス a とパス b の間の相対パス (e.php パスにアクセスするには c.php を使用します) :';
- echo getRelativePath($a,$b);
- // -----出力-------------=
- パス a:/a/b/c/d/ e.php
- パス b:/a/b/12/34/c .php
- パス a とパス b の間の相対パス (e.php パスにアクセスするには c.php を使用します) は次のとおりです: ../../ ../c/d
コードをコピー
|
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31