PHP を使用した相対パスから絶対 URL への変換
相対パスから絶対 URL への変換は、Web ページを操作する場合の一般的なタスクです。 PHP には、このプロセスを簡素化するための簡単な関数 rel2abs が用意されています。
関数の理解
rel2abs 関数は 2 つのパラメータを取ります:
- $rel: 変換する必要がある相対パス。
-
$base: 絶対パスの生成元となるベース URL。
関数の実装
- まず、指定された $rel がすでに絶対 URL であるかどうかを確認します (つまり、"http" や "https などのスキームが含まれています) ")。存在する場合、関数はそれをそのまま返します。
- $rel が絶対 URL ではない場合、「#」または「?」で始まるかどうかを確認します。存在する場合は、そのパスがアンカーまたはクエリ文字列のいずれかを表していることを意味します。その場合、関数はベース URL を $rel の先頭に追加して返します。
- 上記のカテゴリに当てはまらないパスの場合、関数はベース URL からスキーム、ホスト、パスのコンポーネントを抽出し、パスからディレクトリ以外の要素を削除します。
- 相対パスが「/」で始まる場合、そのパスはルート ディレクトリを基準とした絶対相対パスであることを意味します。その場合、ベース URL の現在のパスは破棄され、相対 URL からのパスが使用されます。
- その後、関数はベース URL と相対パスのコンポーネントを組み合わせてダーティ絶対 URL を構築します。 .
- 最後に、一連の正規表現を適用してダーティな絶対 URL をクリーンアップし、二重スラッシュ ("//")、ドット パス ("/./")、不要な親などの不要な要素を削除します。ディレクトリ参照 ("/foo/../")。
- 結果の 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 サイトの他の関連記事を参照してください。