Fonction pour remplacer des strings (php)

Fermé
yazou Messages postés 85 Date d'inscription mardi 7 novembre 2006 Statut Membre Dernière intervention 17 août 2023 - 11 févr. 2008 à 17:07
 dada - 17 avril 2010 à 22:39
Bonjour,
Je voudrais empecher les membres de mon site de poster leur mail ainsi que l url de leur site dans leur message. Je sais qu il existe des fonctions php du genre string replace pour cela mais je suis novice je ne sais pas quoi mettre dedans.
Quelqu un pourrait m aider ?
Merci par avance
Yaz
A voir également:

5 réponses

styvodiabolo Messages postés 44 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 4 janvier 2009
11 févr. 2008 à 17:28
Salut yazou,

Tu peux tâter du côté des expressions régulières mais pour le moment tu peux te tourner vers cette fonction :

//En début de script
$_ENV['caracInterdits'] = array(
".com",
".fr",
".org",
...,
"@",
"http"
);
//Je te laisse garnir à souhait les différents mots qui correspondraient à une url

function noSite(&$texte) {
foreach($_ENV['caracInterdits'] as $carac) {
if(eregi($carac,$texte)) $texte = str_replace($carac,"",$texte);
}
}
0
yazou Messages postés 85 Date d'inscription mardi 7 novembre 2006 Statut Membre Dernière intervention 17 août 2023 2
11 févr. 2008 à 20:19
Merci
Je crois que j ai trouve mon bonheur ici https://www.roscripts.com/php_regular_expressions_examples-136/

Bien a vous
Yazou
0
yazou Messages postés 85 Date d'inscription mardi 7 novembre 2006 Statut Membre Dernière intervention 17 août 2023 2
11 févr. 2008 à 21:48
je reviens ver vous pour tenter de resoudre une erreur, lorsque j utilise le code suivant :

function text_area($string)
{


$string=preg_replace('\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b', 'xxxx@xxxx.xx', $string);
$string=preg_replace('\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', 'xx', $string);



return $string;
}

j obtiens :


Warning</b>: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Delimiter must not be alphanumeric or backslash in

une idee ?
Merci
Yaz
0
styvodiabolo Messages postés 44 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 4 janvier 2009
11 févr. 2008 à 22:39
Bien le bonsoir,

Je peux te répondre mais ma façon de "coder" les expressions régulières est un soupçon différente.
Tout d'abord "Delimiter must not be alphanumeric or backslash in " --> pas de /b au départ ni à la fin donc #.

Dans un premier temps, on aura donc :
$string=preg_replace("#[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}#", "xxxx@xxxx.xx", $string);
$string=preg_replace("#(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]#", "xx", $string);

Par contre, les dièses à l'intérieur des crochets dans le deuxième preg_replace vont être embêtants.
Au final :
$string=preg_replace("#[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}#", "xxxx@xxxx.xx", $string);
$string=preg_replace("#(https?|ftp|file)://[-A-Z0-9+&@/%?=~_|!:,.;]*[-A-Z0-9+&@/%=~_|]#", "xx", $string);

Styvo.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$
0