Posez votre question Signaler

Ereg Php

ZaO67 - Dernière réponse le 24 avril 2011 à 14:10
Bonjours, j'ai un probléme avec la fonction Ereg de php
Je voudrai faire un ereg qui accepte uniquement les caractere: A-Za-z0-9 le tiret et l'undescor

le tout utiliser avec un if voila un bout du code en question:

if (ereg("ICI JE BLOQUE",$_POST["name_new"]))
{
echo "post name new ne contien que des caractere alphanumerique tiret et undescor";
}
else
{
echo "erreur";
}

merci pour votre aide
Lire la suite 

Ereg Php »

12 réponses
Réponse
+2
moins plus
Salut,

tu ne dois faire plutôt comme ça
if (ereg("[-a-zA-Z0-9_]",$_POST["name_new"]))
{
echo "post name new ne contien que des caractere alphanumerique tiret et undescor";
}
else
{
echo "erreur";
}
lami20j
Ajouter un commentaire
Réponse
+1
moins plus
Re,

j'ai oublié le quantificateur +

Tu peux tester ta regexi ici http://www.quanetic.com/regex.php ou http://www.roblocher.com/technotes/regexp.aspx ou http://www.annuaire-info.com/expression-reguliere.html

lami20j
Ajouter un commentaire
Réponse
+1
moins plus
Re,

pour les caractères é è ê ë à â ä î ï ô ö (en code ascii étendue)

Tu peux utiliser des classes de caractères spéciales sinon la laide

[a-z0-9_ éèêëàâäîïôö-]+ avec un modificatuer pur ne prendre en compte la casse.

lami20j
Ajouter un commentaire
Réponse
+1
moins plus
Re,

tu n'utilises que [a-z0-9_ éèêëàâäîïôö-]+ mais avec eregi à la place de ereg

donc pas de A-Z et les autre en majuscule, c'est eregi qui s'occupe.

lami20j
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

essaie ça
if (eregi("^[a-z0-9_\xC0-\xFF-]+$",$_POST["name_new"]))

lami20j
Ajouter un commentaire
Réponse
+1
moins plus
Re,

en bref j'utilise une classe en me basant sur la répresentation en hexadécimale pour les caractères avec accent
J'ai ajouté dans la ligne de commande et pour ne pas être obligé le faire à la main ici
lami20j@debian:~$ perl -e 'print "$_ => ${\(chr($_))} => ${\ (sprintf \"%0.2X\",$_) }\n" for 192..255'
192 => À => C0
193 => Á => C1
194 => Â => C2
195 => Ã => C3
196 => Ä => C4
197 => Å => C5
198 => Æ => C6
199 => Ç => C7
200 => È => C8
201 => É => C9
202 => Ê => CA
203 => Ë => CB
204 => Ì => CC
205 => Í => CD
206 => Î => CE
207 => Ï => CF
208 => Ð => D0
209 => Ñ => D1
210 => Ò => D2
211 => Ó => D3
212 => Ô => D4
213 => Õ => D5
214 => Ö => D6
215 => × => D7
216 => Ø => D8
217 => Ù => D9
218 => Ú => DA
219 => Û => DB
220 => Ü => DC
221 => Ý => DD
222 => Þ => DE
223 => ß => DF
224 => à => E0
225 => á => E1
226 => â => E2
227 => ã => E3
228 => ä => E4
229 => å => E5
230 => æ => E6
231 => ç => E7
232 => è => E8
233 => é => E9
234 => ê => EA
235 => ë => EB
236 => ì => EC
237 => í => ED
238 => î => EE
239 => ï => EF
240 => ð => F0
241 => ñ => F1
242 => ò => F2
243 => ó => F3
244 => ô => F4
245 => õ => F5
246 => ö => F6
247 => ÷ => F7
248 => ø => F8
249 => ù => F9
250 => ú => FA
251 => û => FB
252 => ü => FC
253 => ý => FD
254 => þ => FE
255 => ÿ => FF
lami20j@debian:~$
lami20j
marwa - 24 avril 2011 à 14:00
moi aussi j'ai un probleme dans un code php de l'mail :
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};


l' erreur est affiche:
Deprecated: Function eregi() is deprecated
lami20j - 24 avril 2011 à 14:10
Salut,

C'est normal si tu utilise php 5.3.0 http://php.net/manual/en/function.eregi.php

Ici tu as les fonctions pour remplacer http://www.php.net/manual/en/reference.pcre.pattern.posix.php

Dans ton cas utilise preg-match
Plus bas dans la page tu as un exemple pour insensibilité à la case.
Ajouter un commentaire
Réponse
+0
moins plus
j'ai trouver sa: ^[A-Za-z0-9_-]+$ qui me semble marcher qu'en penser vous?
Ajouter un commentaire
Réponse
+0
moins plus
oui sa fonctionne par contre les caracetre du genre é ou à ne fonction pas! Comment doije proceder pour les faire fonctionner aussi? enfin tout se qui et: é è ê ë à â ä î ï ô ö je croit que c'est tout majuscule compris bien entandu
Ajouter un commentaire
Réponse
+0
moins plus
est bien je croit que ton code marche ^^ merci pour le coup de main j'était perdu

if (ereg("^[A-Za-z0-9_ éèêëàâäîïôö-]+$",$_POST["name_new"]))

Donc sa autorisée AZ az 09 tout les éè.... le - et le _ par contre il faut encore que je rajoute les Ê ou Ë enfin majuscule en gros c'est juste?
Ajouter un commentaire
Réponse
+0
moins plus
if (eregi("^[a-z0-9_áàâäãåçéèêëìíîïñòóôöõöúùûüýÿ-]+$",$_POST["name_new"]))

voila j'ai mis tout ce que j'ai trouver pour ce que sa interesse

merci pour ton aide lami20j
a+
Ajouter un commentaire
Ce document intitulé « Ereg Php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?