<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n'a rien à voir avec le contenu de l'article,Peut placer certainsPHPCommentaires ou code non pertinent</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Bienvenue à lirePHPTutoriel!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n--------------------------------------------------\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
Comment utiliserpreg_matchFonctions à vérifierIPadresse,Assurez-vous que le format est correct et efficace?
existerPHPmilieu,`preg_match`Les fonctions sont un outil très puissant pour la correspondance d'expression régulière。Lorsque nous devons vérifier l'entrée utilisateurIPadresse是否格式正确时,`preg_match`Cette tâche peut être effectuée rapidement。本文将详细讲解Comment utiliser它验证IPv4etIPv6adresse。
</span><span><span class="hljs-comment">### 1. IPv4adresse验证</span></span><span>
IPv4adresse由四段数字组成,La plage de chaque numéro est</span><span><span class="hljs-number">0</span></span><span>arriver</span><span><span class="hljs-number">255</span></span><span>,milieu间用点号分隔,Par exemple:</span><span><span class="hljs-number">192.168</span></span><span>.</span><span><span class="hljs-number">0.1</span></span><span>。为了确保格式et有效性,Nous pouvons utiliser l'expression régulière suivante:
```php
</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span> = </span><span><span class="hljs-string">"/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"192.168.1.100"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4adresse格式正确"</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">"IPv4adresse格式不正确"</span></span><span>;
}
</span></span>
expliquer:
25 [0-5] Match 250-255
2 [0-4] [0-9] Match 200-249
1 [0-9] {2} Match 100-199
[1-9]? [0-9] Match 0-99
((...) \.) {3} ... assurez-vous qu'il y a quatre nombres et que le milieu est séparé par des points
Le format d'adresse IPv6 est plus complexe, composé de 8 ensembles de nombres hexadécimaux, chacun séparé par un côlon. Un exemple d'expression régulière simple est la suivante:
<span><span><span class="hljs-variable">$ipv6_pattern</span></span><span> = </span><span><span class="hljs-string">"/^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"2001:0db8:85a3:0000:0000:8a2e:0370:7334"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv6_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6adresse格式正确"</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">"IPv6adresse格式不正确"</span></span><span>;
}
</span></span>
Si vous souhaitez vérifier IPv4 et IPv6, vous pouvez utiliser la fonction filter_var , qui a une fonction de vérification IP intégrée:
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>, FILTER_VALIDATE_IP)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPadresse有效"</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">"IPadresse无效"</span></span><span>;
}
</span></span>
Lors du traitement des entrées des utilisateurs, faites toujours attention à la suppression des espaces et des caractères non valides pour éviter les défaillances de correspondance en raison des espaces précédents et suivants:
<span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>);
</span></span>
Pour la vérification par lots d'un grand nombre d'adresses IP, il est possible de combiner des boucles et preg_match pour vérifier efficacement chaque entrée.
À l'aide de preg_match combinée avec des expressions régulières précises, vous pouvez vérifier que le format d'adresse IP est correct et valide. Pour IPv4, l'accent est mis sur la plage de nombres et le numéro de segment; Pour IPv6, l'accent est mis sur le groupe hexadécimal et la séparation du côlon. La maîtrise de ces compétences peut rendre votre programme PHP plus sûr et plus fiable lors de la gestion des adresses réseau.
<span></span>