Contrôler la syntaxe d'une URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Contrôler la syntaxe d'une URL

par zeuf » 01 mai 2008, 18:33

Salut Victor!

Effectivement... Selon le manuel :
Note: preg_match(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg().
Et tu as rajouté l'insensibilité à la casse... cool et Merci !!

Zeuf

Re: Contrôler la syntaxe d'une URL

par Victor BRITO » 01 mai 2008, 17:21

Une suggestion d'amélioration du code, en utilisant preg_match() et améliorant l'expression régulière.
<?php
$url = ''; // Mettre URL de votre choix
if (preg_match ("#^(https?://)?[-[:alnum:]\.]*[[:alnum:]]+\.[a-z]{2,4}(\.[a-z]{2})?[-\?&\=\._/[:alnum:]]*$#i" , $url)) echo 'Url ok';
else echo 'Erreur dans la syntaxe';
?>

Contrôler la syntaxe d'une URL

par zeuf » 01 mai 2008, 10:46

Bonjour à tous !

J'ai mis au point cette EREG pour "contrôler" une URL (HTTP ici, mais vous pouvez rajouter ce que vous voulez en séparant les données par |. Exemple : http:// | https:// | ftp: ). Pour le peu de test que j'ai fait, cela fonctionne à peu près... Si quelqu'un pouvait me dire ce qui pourrait clocher et comment le corriger... Merci à tous !

Code : Tout sélectionner

<?php $url = "" ; // Mettre URL de votre choix if (ereg("^(http://|https://)?[-[:alnum:]\.]*[[:alnum:]]+(\.([a-zA-Z]{2,4})+[-\?&\=\._/[:alnum:]]*)$" , $url)) echo 'Url ok' ; else echo 'Erreur dans la syntaxe' ; ?>
Merci à tous