Est-ce que quelqu'un sait pourquoi la fonction filter_var() ci-dessous génère l'avertissement? Y at-il une limite sur combien de caractères peuvent être dans une classe de caractères?Fonction filter_var() de PHP Génération d'avertissement
$regex = "/^[\w\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\072\073\074\075\076\077\100\133\134\135\136\140\173\174\175\176]*$/";
$string = "abc";
if(!filter_var($string, FILTER_VALIDATE_REGEXP, array("options" => array("regexp"=>$regex))))
{
echo "dirty";
}
else
{
echo "clean";
}
Attention: filter_var() [function.filter-var]: modificateur inconnu ':'
Merci pour votre aide. Cela fonctionne maintenant que j'ai ajouté des antislashs en utilisant son code ASII "134". Je vais mettre l'expression rationnelle actuelle dans une autre réponse juste en dessous. – lanmind
De rien :-) Une question me vient à l'esprit: pourquoi utilisez-vous des codes ASCII, et pas directement les caractères? Il serait plus facile de comprendre votre regex, de cette façon, ne pensez-vous pas? –
J'ai pensé à ça trois secondes plus tôt, lol! La réponse est que j'ai utilisé le code ANCII du personnage de l'espace dans une regex avant et depuis, mon esprit me dit de le faire pour les caractères spéciaux. Je vais probablement changer mon chemin un jour:) – lanmind