Maison > développement back-end > tutoriel php > Comment convertir un chemin relatif en URL absolue en utilisant PHP ?

Comment convertir un chemin relatif en URL absolue en utilisant PHP ?

Susan Sarandon
Libérer: 2024-11-07 11:52:03
original
240 Les gens l'ont consulté

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

Transformer les chemins relatifs en URL absolues avec PHP

La conversion des chemins relatifs en URL absolues est essentielle pour travailler avec des ressources Web. Cette tâche peut être accomplie à l'aide de PHP, un langage de script largement utilisé pour le développement Web.

Comment convertir un chemin relatif en URL absolue à l'aide de PHP :

Pour réaliser cette conversion, vous pouvez utiliser la fonction 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;
}
Copier après la connexion

Explication :

  1. Vérifiez si le chemin relatif est déjà une URL absolue ( contient un schéma).
  2. Concaténez les requêtes ou les ancres avec l'URL de base.
  3. Analysez l'URL de base en ses composants de schéma, d'hôte et de chemin.
  4. Convertissez le relatif fourni chemin dans une URL absolue "sale".
  5. Remplacez de manière itérative les modèles tels que "//" ou "/./" ou "/foo/../" par "/" pour nettoyer l'URL absolue.
  6. Renvoyer l'URL absolue nettoyée.

Utilisation :

Vous pouvez utiliser cette fonction pour transformer n'importe quel chemin relatif en son URL absolue correspondante. Par exemple, les extraits suivants illustrent comment transformer un chemin relatif en URL absolue :

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

$abs_url = rel2abs($rel_path, $base_url); // Output: "https://example.com/images/profile.jpg"
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal