Maison >développement back-end >tutoriel php >Comment puis-je obtenir par programme l'URL de base en PHP ?

Comment puis-je obtenir par programme l'URL de base en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-04 14:55:11229parcourir

How Can I Programmatically Get the Base URL in PHP?

Obtention de l'URL de base en PHP

Dans votre environnement de développement, où vous utilisez une URL locale telle que http://127.0. 0.1/test_website/, il peut être utile d'obtenir par programme l'URL de base pour diverses fonctions. Cependant, les méthodes couramment utilisées telles que dirname(__FILE__) et basename(__FILE__) ne produiront pas le résultat souhaité.

Solution 1 :

Pour obtenir avec précision l'URL de base, vous pouvez utiliser les éléments suivants code :

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

Cette approche utilise la variable prédéfinie $_SERVER pour accéder au nom du serveur et demander l'URI, construisant ainsi efficacement l'URL de base.

Solution 2 (pour la prise en charge de HTTPS) :

Si vous devez également prendre en charge HTTPS, envisagez d'utiliser ce qui suit function :

function url(){
  return sprintf(
    "%s://%s%s",
    isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
    $_SERVER['SERVER_NAME'],
    $_SERVER['REQUEST_URI']
  );
}

Attention :

Lorsque vous utilisez la clé SERVER_NAME, assurez-vous que votre configuration Apache est correctement configurée. Sinon, vous devez spécifier explicitement le nom du serveur dans la configuration de votre hôte virtuel :

<VirtualHost *>
    ServerName example.com
    UseCanonicalName on
</VirtualHost>

Remarque supplémentaire :

Utilisation de la clé HTTP_HOST nécessite un nettoyage supplémentaire pour garantir des caractères valides pour un domaine. Pensez à utiliser la fonction parse_url intégrée à PHP à cet effet.

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