PHP REGEX: Obtenir de domaine à partir de l'URL
Ce que je veux
Je veux obtenir à partir d'une URL
la domain
la partie afin de http://example.com/
-> example.com
Exemples:
+----------------------------------------------+-----------------------+
| input | output |
+----------------------------------------------+-----------------------+
| http://www.stackoverflow.com/questions/ask | www.stackoverflow.com |
| http://validator.w3.org/check | validator.w3.org |
| http://www.google.com/?q=hello | www.google.com |
| http://google.de/?q=hello | google.de |
+----------------------------------------------+-----------------------+
J'ai trouvé que certaines questions liées à stackoverflow
mais aucun d'eux n'était exactement ce que je cherchais.
Merci pour toute aide!
- Ce code va vous aider à obtenir le nom de domaine complet: gist.github.com/praisedpk/64bdb80d28144aa78d58469324432277
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas besoin d'utiliser une regex pour cela. PHP dispose d'une fonction intégrée de fonction pour faire juste cela. Utilisation
parse_url()
:parse_url('http://example.com', PHP_URL_HOST) == parse_url('http://www.example.com', PHP_URL_HOST)
retournera falseJ'utilise:
Parce que
parse_url
n'a pas de retour de la clé d'hôte lorsque le schéma est manquant dans$url
.Suppose que
http://
préfixes tout.C'est comme le la regex par theraccoonbear mais avec l'aide de HTTPS domaines.
Voici mon rapide et sale de la solution.
http://([^/]+).*
Je ne l'ai pas testé, mais il doit la saisir quoi que ce soit entre les
http://
et la première barre oblique.Meilleur moyen je pense:
Je pense que la suite de regexp peut répondre à votre question.
Ce diagramme explique comment il fonctionne, ou plutôt pourquoi ça marche 🙂