ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して相対パスを絶対 URL に変換するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 11:52:03146ブラウズ

How to Convert a Relative Path to an Absolute URL Using PHP?

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

相対パスを絶対 URL に変換することは、Web ベースのリソースを操作する場合に不可欠です。このタスクは、Web 開発で広く使用されているスクリプト言語である PHP を使用して実行できます。

PHP を使用して相対パスを絶対 URL に変換する方法:

Toこの変換を達成するには、rel2abs() 関数を利用できます:

function rel2abs($rel, $base)
{
    /* return if already absolute URL */
    if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;

    /* queries and anchors */
    if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel;

    /* parse base URL and convert to local variables:
       $scheme, $host, $path */
    extract(parse_url($base));

    /* remove non-directory element from path */
    $path = preg_replace('#/[^/]*$#', '', $path);

    /* destroy path if relative url points to root */
    if ($rel[0] == '/') $path = '';

    /* dirty absolute URL */
    $abs = "$host$path/$rel";

    /* replace '//' or '/./' or '/foo/../' with '/' */
    $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
    for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {}

    /* absolute URL is ready! */
    return $scheme.'://'.$abs;
}

説明:

  1. 相対パスがすでに絶対 URL であるかどうかを確認します (スキームが含まれています)。
  2. クエリまたはアンカーをベース URL と連結します。
  3. ベース URL をスキーム、ホスト、およびパスのコンポーネントに解析します。
  4. 指定された相対値を変換します。
  5. 「//」、「/./」、「/foo/../」などのパターンを「/」に繰り返し置き換えて、絶対 URL をクリーンアップします。
  6. 🎜>
  7. クリーンアップされた絶対 URL を返します。

使用法:

この関数を利用して、相対パスを対応する絶対 URL に変換できます。たとえば、次のスニペットは、相対パスを絶対 URL に変換する方法を示しています:
$rel_path = "images/profile.jpg";
$base_url = "https://example.com/";

$abs_url = rel2abs($rel_path, $base_url); // Output: "https://example.com/images/profile.jpg"

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。