Étant donné une URL, l'extraction du nom de domaine est une tâche courante dans le développement Web et le traitement de données. Cependant, cela peut être difficile en raison de la complexité de la syntaxe des URL et des cas extrêmes potentiels.
Dans cette discussion, nous proposons une solution Java qui extrait les noms de domaine des URL et résout les pièges potentiels et les cas extrêmes :
La solution fournie utilise java.net.URI au lieu de java.net.URL pour analyser les URL :
<code class="java">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; }</code>
Cette approche évite plusieurs problèmes avec java.net .URL, comme sa vulnérabilité aux attaques par déni de service et son manque de prise en charge des URL relatives.
La solution originale échoue dans plusieurs cas extrêmes, notamment :
Pour les URL avec des formats complexes et potentiellement invalides, vous pouvez utiliser une expression régulière basée sur l'annexe B de la RFC 3986. Cependant, cette approche est plus complexe et peut ne pas gérer correctement tous les cas extrêmes.
L'extraction de noms de domaine à partir d'URL nécessite une attention particulière prise en compte de la syntaxe de l'URL et des cas extrêmes potentiels. La solution Java fournie résout bon nombre de ces problèmes et garantit une extraction fiable des noms de domaine. Lors du traitement d'URL plus complexes ou d'entrées non valides, un analyseur basé sur des expressions régulières peut être nécessaire.
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!