Extraire les noms de domaine des URL
Cette question cherche à extraire efficacement les noms de domaine des URL. Bien que le code Java fourni semble fonctionner raisonnablement, l'auteur s'enquiert de toute technique supérieure ou cas extrêmes potentiels susceptibles de nuire à sa fiabilité.
Implémentation alternative utilisant java.net.URI
Une approche plus propre de l'analyse des URL est recommandée, en utilisant la classe java.net.URI au lieu de java.net.URL. Cette dernière présente des problèmes connus, tels que sa méthode d'égalité problématique, qui peut exposer le code à des vulnérabilités dans des scénarios impliquant des entrées non fiables :
public static String getDomainName(String url) throws URISyntaxException { URI uri = new URI(url); String domain = uri.getHost(); return domain.startsWith("www.") ? domain.substring(4) : domain; }
Cette méthode améliorée devrait récupérer efficacement les noms de domaine tout en gérant les cas extrêmes impliquant une casse ou une casse incorrecte. variations dans le préfixe "www".
Cas extrêmes supplémentaires à prendre en compte
Le code d'origine ne tient pas compte des formats d'URL spécifiques :
Pour résoudre ces cas extrêmes, envisagez de faire référence à l'annexe B de la RFC 3986, qui fournit une expression régulière complète pour analyser les références URI et les décomposer en composants individuels.
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!