Maison >développement back-end >tutoriel php >Comment puis-je convertir des chemins relatifs en URL absolues à l'aide de PHP ?

Comment puis-je convertir des chemins relatifs en URL absolues à l'aide de PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 00:03:02537parcourir

How can I convert relative paths to absolute URLs using PHP?

Conversion de chemins relatifs en URL absolues avec PHP

La transformation de chemins relatifs en URL absolues est une tâche courante lorsque l'on travaille avec des pages Web. PHP fournit une fonction simple, rel2abs, pour simplifier ce processus.

Comprendre la fonction

La fonction rel2abs prend deux paramètres :

  • $rel : Le chemin relatif qui doit être transformé.
  • $base : L'URL de base à partir de laquelle le chemin absolu doit être généré.

Implémentation de la fonction

  1. Il vérifie d'abord si le $rel fourni est déjà une URL absolue (c'est-à-dire qu'il contient un schéma, tel que "http" ou "https "). Si c'est le cas, la fonction le renvoie tel quel.
  2. Si $rel n'est pas une URL absolue, elle vérifie si elle commence par "#" ou "?". Si tel est le cas, cela signifie que le chemin représente soit une ancre, soit une chaîne de requête. Dans ce cas, la fonction ajoute l'URL de base à $rel et la renvoie.
  3. Pour les chemins qui n'entrent pas dans les catégories ci-dessus, la fonction extrait les composants du schéma, de l'hôte et du chemin de l'URL de base et supprime les éléments non-répertoire du chemin.
  4. Si le chemin relatif commence par "/", cela signifie que le chemin est absolu par rapport au répertoire racine. Dans ce cas, le chemin actuel dans l'URL de base est ignoré et le chemin de l'URL relative est utilisé.
  5. La fonction construit ensuite une URL absolue sale en combinant les composants de l'URL de base et du chemin relatif. .
  6. Enfin, il applique une série d'expressions régulières pour nettoyer l'URL absolue sale, en supprimant les éléments inutiles comme les doubles barres obliques ("//"), les chemins de points ("/./") et les parents inutiles. références d'annuaire ("/foo/../").
  7. L'URL résultante est ensuite renvoyée sous forme d'URL absolue.

Exemple d'utilisation

L'extrait de code suivant montre un exemple d'utilisation de la fonction 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

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