この記事では主に、PHP で 2 つのファイルの相対パスを計算する方法を紹介します。これには、PHP の文字列操作のスキルも含まれます。必要な方は参考にしてください。
この例は、PHP での文字列操作のスキルを含みます。この記事では、2 つのファイルの相対パスを計算する PHP メソッドについて説明しています。参考のためにみんなで共有してください。詳細は次のとおりです:
1. 質問:
2 つのファイルの相対パスを計算する php 関数を作成します。たとえば、$a="/a/b/c/d/e.php"; $b="/a/b/12/34/c.php" の場合、A に対する B の相対パスは何ですか?
2. 解決策:
<?php /** * 求$b相对于$a的相对路径 * @param string $a * @param string $b * @return string */ function getRelativePath ($a, $b) { $patha = explode('/', $a); $pathb = explode('/', $b); $counta = count($patha) - 1; $countb = count($pathb) - 1; $path = "../"; if ($countb > $counta) { while ($countb > $counta) { $path .= "../"; $countb --; } } // 寻找第一个公共结点 for ($i = $countb - 1; $i >= 0;) { if ($patha[$i] != $pathb[$i]) { $path .= "../"; $i --; } else { //判断是否为真正的第一个公共结点,防止出现子目录重名情况 for ($j = $i - 1, $flag = 1; $j >= 0; $j --) { if ($patha[$j] == $pathb[$j]) { continue; } else { $flag = 0; break; } } if ($flag) break; else $i ++; } } for ($i += 1; $i <= $counta; $i ++) { $path .= $patha[$i] . "/"; } return $path; } $a = "/a/c/d/e.php"; $b = "/a/c.php"; $path = getRelativePath($a, $b); echo $path;
要約: 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。
関連推奨事項:
以上がPHPでファイルの相対パスを計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。