supprimer des caractères non autorisés

Eléphant du PHP | 89 Messages

11 juin 2011, 11:12

bonsoir dans mon formulaire je ne veut que des lettres chiffre et @ et l'espace
si je trouvé un caractère non autorisés je le remplace par espace

je voudrais comment je peut réaliser cette fonction (y'a t'il des fonctions prédéfinies)

merci

Mammouth du PHP | 19672 Messages

11 juin 2011, 12:12

Il y a str_replace() qui fait ça très bien :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 89 Messages

11 juin 2011, 13:56

slt comment je peut exprimé mon motif pour dire les caractères différents de lettre et chiffre

merci

Mammouth du PHP | 19672 Messages

11 juin 2011, 14:04

Dans ce cas, tu peux utiliser une expression régulière et la fonction preg_replace() au lieu de str_replace.

Le masque serait alors quelque chose comme ([^a-zA-Z0-9]) correspondant à tout ce qui n'est pas une lettre minuscule ou majuscule ou un chiffre de 0 à 9.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 89 Messages

11 juin 2011, 14:07

bonsoir je fait ca

$res=preg_replace('![^a-zA-Z@0-9]!',' ',$ch);
je voudrais savoir comment je peut ajouter l'espace et les accent é è
merci

Mammouth du PHP | 19672 Messages

11 juin 2011, 14:25

Dans ce cas, au lieu de « a-zA-Z » tu peux utiliser « \w » (correspondant à « word ») qui cinluera les caractères accentués.

En résumé, essaye avec le masque [^\w0-9@, ] qui ne touchera que ce qui n'est ni lettres, ni chiffres, ni @ ni espace ni virgule et ça traitera des phrases normales.
<?php
$masque = "#[^\w0-9@, ]#";
$res = preg_replace($masque, ' ', $ch);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: