Transformer les chemins relatifs en URL absolues en PHP
Lorsque vous travaillez avec des URL, il devient souvent nécessaire de convertir les chemins relatifs en URL absolues. PHP fournit une fonction appelée rel2abs qui accomplit cette tâche.
Définition de la fonction
function rel2abs($rel, $base)
-
$rel : Le chemin relatif qui doit être converti.
-
$base : L'URL de base à partir de laquelle le chemin relatif sera résolu.
Exemple d'utilisation
L'extrait de code suivant montre comment utiliser la fonction rel2abs :
$relativePath = 'images/logo.png';
$baseUrl = 'https://example.com';
$absoluteUrl = rel2abs($relativePath, $baseUrl);
echo $absoluteUrl; // Prints: https://example.com/images/logo.png
Détails d'implémentation
La fonction rel2abs suit ces étapes pour convertir un relatif chemin vers une URL absolue :
- Si le chemin relatif est déjà une URL absolue (c'est-à-dire qu'il contient un schéma tel que "http" ou "https"), il est renvoyé tel quel.
- Si le chemin relatif commence par une chaîne de requête ("?") ou une ancre ("#"), il est ajouté à l'URL de base.
- L'URL de base est analysée dans ses composants ( schéma, hôte et chemin).
- L'élément non-répertoire du chemin de l'URL de base est supprimé.
- Une URL absolue "sale" est construite en combinant l'hôte de l'URL de base et le chemin modifié , et le chemin relatif.
- L'URL absolue "sale" est nettoyée en supprimant toutes les barres obliques répétées ("//"), les barres obliques inutiles après les noms de répertoire ("/./") ou en revenant en arrière sur les références de répertoire. ("/foo/../").
- L'URL absolue finale est renvoyée.
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!
Déclaration: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