7
votes

Supprimer le sous-domaine de $ _Server ['Nom_ser_']]

J'ai besoin de créer un script où il supprimerait le sous-domaine de $ _server ["nom_serveur"] pour l'utiliser sur l'option de domaine de la fonction Setcookie pour permettre l'accès du cookie sur tous les sous-domaines possibles.

Par exemple, disons que j'ai xxx

le problème principal ici est que je ne connais pas le modèle de mon domaine. Cela pourrait être quelque chose comme:

  • www.mydomain.com
  • sous-domaine.mydomain.com
  • subdo.mydo.co
  • subdo.subdo.mydomaine.com
  • subdo.subdo.mydo.co.uk
  • etc.

    merci

    stephanie


5 commentaires

Vous devrez définir manuellement le motif. Il n'y a pas de règle claire (un TLD peut consister en une partie .com ou deux .CO.JP ) Il y a une question sur une liste de la plupart d'entre eux mais je ne peux pas le trouver maintenant


Ceci est venu hier aussi. Stackoverflow.com/Questions/5319296/PHP-URL-PARSING-DISectine g - Il existe une liste complète (Mozilla maintenue) dans le commentaire à la fin.


@Mario: Merci pour votre lien. Je vois que le problème est populaire et impossible de résoudre facilement facilement.


Voir aussi Stackoverflow.com/Questions/3853338/ReMove-Domain-extension / ...


Dupliqué possible de PHP Regex pour extraire des sous-domaines de domaines arbitraires


4 Réponses :


3
votes

est-il possible de définir une variable dans la configuration du serveur (httpd.conf, .htaccess)? Il nécessite un peu d'administration initiale supplémentaire, mais pourrait au moins être effectuée dans un emplacement central.

J'ai pu définir une variable dans Apache xxx

qui pourrait être consommé en PHP: xxx


0 commentaires

4
votes

Ceci est un style de regex d'élimination de la partie sous-domaine à partir du nom de domaine complet.

Le

. *?

opérateur rend la correspondance générique à être ungredy afin qu'il correspond au premier point. xxx


0 commentaires

2
votes

Vous pouvez interroger le service alexa avec CURL et extraire le nom d'hôte sans sous-domaine: xxx


0 commentaires

1
votes

Je sais que c'est des années plus tard, mais pourquoi ne pas aller comme ceci:

$dom='a.b.c.d.co.jp';
$sub=preg_replace("/.*?([^\.]+)(\.((co\.\w+)|\w+))$/i",'\1\2',$dom); //strip subdomains


0 commentaires