Dans le développement Web, l'extraction des noms de domaine dans les URL est une exigence commune. PHP fournit de nombreuses fonctions pour nous aider à manipuler les chaînes, et la fonction STRSTR peut être utilisée pour extraire et manipuler les noms de domaine dans les URL. Aujourd'hui, nous discuterons de la façon d'utiliser STRRIST pour atteindre cet objectif.
StrRist est une fonction de chaîne en PHP qui trouve l'emplacement où une chaîne apparaît d'abord et renvoie tout de cet emplacement à la fin de la chaîne. Contrairement à STRPOS , STRPOS ignore le cas, ce qui est particulièrement pratique pour gérer les noms de domaine dans les URL, car les noms de domaine sont insensibles au cas dans la plupart des cas.
<span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ Haystack : la chaîne cible, généralement l'URL à partir de laquelle nous voulons extraire des informations.
$ aiguille : la sous-chaîne à rechercher, ici, nous utiliserons ": //" pour nous aider à déterminer la position de départ du nom de domaine.
$ before_needle : paramètre facultatif. Si défini sur true , renvoyez le contenu avant la pièce correspondante; Si false (par défaut), renvoyez la pièce correspondante et le contenu après.
Ensuite, nous introduirons l'application pratique de StrRist en extrayant des noms de domaine des URL comme exemple. Supposons que nous ayons l'URL suivante:
<span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://www.example.com/path/to/page?query=123"</span></span><span>;
</span></span>
Nous voulons extraire la partie du nom de domaine de cette URL, à savoir www.example.com .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://www.example.com/path/to/page?query=123"</span></span><span>;
</span><span><span class="hljs-comment">// utiliser stristr Trouver '://' La dernière partie</span></span><span>
</span><span><span class="hljs-variable">$domain_part</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>, </span><span><span class="hljs-string">'://'</span></span><span>);
</span><span><span class="hljs-comment">// Si trouvé,Retirer '://' et partie du chemin</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$domain_part</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-comment">// Retirer '://' Et intercepter le premier '/' La partie précédente</span></span><span>
</span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$domain_part</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$domain_part</span></span><span>, </span><span><span class="hljs-string">'/'</span></span><span>) - </span><span><span class="hljs-number">3</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Le nom de domaine est: "</span></span><span> . </span><span><span class="hljs-variable">$domain</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"URL Format non valide"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
strristR ($ url, ': //') : Nous utilisons d'abord StrRist pour trouver : // , qui marque le début de la partie du nom de domaine dans l'URL. Strrist renverra la pièce après : // de la section suivante, et si elle ne peut être trouvée, elle reviendra fausse .
substr ($ domain_part, 3, strPos ($ domain_part, '/') - 3) : après avoir trouvé : // , nous interceptons la partie du nom de domaine via substr et strPos . substr commence à intercepter le troisième caractère après : // jusqu'au premier / apparaît dans l'URL.
Echo "Le nom de domaine est:". $ domaine; : Enfin, sortez le nom de domaine extrait.
Format d'URL : nous supposons que l'URL entrée est légale et conforme à la spécification. Si l'URL n'a pas : // , StrRist ne fonctionnera pas correctement. Par conséquent, lors du traitement des URL, il est préférable de les vérifier d'abord ou d'ajouter une logique de traitement des exceptions.
Problème de nom de sous-domaine : Si l'URL contient un nom de sous-domaine, tel que blog.example.com , le code ci-dessus peut toujours extraire correctement le nom de domaine complet (y compris le nom de sous-domaine).
Différents protocoles : si l'URL utilise un protocole différent (par exemple HTTP , HTTPS , FTP ), Strrist s'applique également car il ignore le cas.
L'utilisation de la fonction strRist pour extraire les noms de domaine des URL est un moyen facile et efficace de le faire. En combinant StrRist et substr , nous pouvons facilement localiser la partie du nom de domaine et extraire les informations dont nous avons besoin. Dans le développement réel, cette méthode est très adaptée à la gestion des URL contenant des chemins et des paramètres de requête, tout en assurant l'ignorance des cas.
Étiquettes associées:
URL