Fonction pour remplacer des strings (php)

yazou Messages postés 95 Statut Membre -  
 dada -
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 Statut Membre
 
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 95 Statut Membre 2
 
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 95 Statut Membre 2
 
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 Statut Membre
 
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
dada
 
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$
0