Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Laluan Relatif kepada URL Mutlak Menggunakan PHP?

Bagaimana untuk Menukar Laluan Relatif kepada URL Mutlak Menggunakan PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-07 11:52:03148semak imbas

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

Menukar Laluan Relatif kepada URL Mutlak dengan PHP

Menukar laluan relatif kepada URL mutlak adalah penting untuk bekerja dengan sumber berasaskan web. Tugasan ini boleh dicapai menggunakan PHP, bahasa skrip yang digunakan secara meluas untuk pembangunan web.

Cara Menukar Laluan Relatif kepada URL Mutlak Menggunakan PHP:

Kepada mencapai penukaran ini, anda boleh menggunakan fungsi 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;
}

Penjelasan:

  1. Semak sama ada laluan relatif sudah menjadi URL mutlak ( mengandungi skema).
  2. Sambungkan pertanyaan atau sauh dengan URL asas.
  3. Hilang URL asas ke dalam skema, hos dan komponen laluannya.
  4. Tukar relatif yang disediakan laluan ke URL mutlak "kotor".
  5. Ganti secara berulang corak seperti "//" atau "/./" atau "/foo/../" dengan "/" untuk membersihkan URL mutlak.
  6. Kembalikan URL mutlak yang telah dibersihkan.

Penggunaan:

Anda boleh menggunakan fungsi ini untuk mengubah mana-mana laluan relatif kepada URL mutlaknya yang sepadan. Sebagai contoh, coretan berikut menggambarkan cara menukar laluan relatif kepada URL mutlak:

$rel_path = "images/profile.jpg";
$base_url = "https://example.com/";

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

Atas ialah kandungan terperinci Bagaimana untuk Menukar Laluan Relatif kepada URL Mutlak Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn