PHP を使用して相対パスを絶対 URL に変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-07 00:03:02
オリジナル
527 人が閲覧しました

How can I convert relative paths to absolute URLs using PHP?

PHP を使用した相対パスから絶対 URL への変換

相対パスから絶対 URL への変換は、Web ページを操作する場合の一般的なタスクです。 PHP には、このプロセスを簡素化するための簡単な関数 rel2abs が用意されています。

関数の理解

rel2abs 関数は 2 つのパラメータを取ります:

  • $rel: 変換する必要がある相対パス。
  • $base: 絶対パスの生成元となるベース URL。

関数の実装

  1. まず、指定された $rel がすでに絶対 URL であるかどうかを確認します (つまり、"http" や "https などのスキームが含まれています) ")。存在する場合、関数はそれをそのまま返します。
  2. $rel が絶対 URL ではない場合、「#」または「?」で始まるかどうかを確認します。存在する場合は、そのパスがアンカーまたはクエリ文字列のいずれかを表していることを意味します。その場合、関数はベース URL を $rel の先頭に追加して返します。
  3. 上記のカテゴリに当てはまらないパスの場合、関数はベース URL からスキーム、ホスト、パスのコンポーネントを抽出し、パスからディレクトリ以外の要素を削除します。
  4. 相対パスが「/」で始まる場合、そのパスはルート ディレクトリを基準とした絶対相対パスであることを意味します。その場合、ベース URL の現在のパスは破棄され、相対 URL からのパスが使用されます。
  5. その後、関数はベース URL と相対パスのコンポーネントを組み合わせてダーティ絶対 URL を構築します。 .
  6. 最後に、一連の正規表現を適用してダーティな絶対 URL をクリーンアップし、二重スラッシュ ("//")、ドット パス ("/./")、不要な親などの不要な要素を削除します。ディレクトリ参照 ("/foo/../")。
  7. 結果の URL は絶対 URL として返されます。

使用例

次のコード スニペットは、rel2abs 関数の使用方法の例を示しています。

$base_url = "https://www.example.com/directory/";
$relative_path = "about.php";
$absolute_url = rel2abs($relative_path, $base_url);

echo $absolute_url; // Output: https://www.example.com/directory/about.php
ログイン後にコピー

以上がPHP を使用して相対パスを絶対 URL に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート