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
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
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:
- Fonction pour remplacer des strings (php)
- Fonction si et - Guide
- Remplacer disque dur par ssd - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
- Fonction remplacer word - Guide
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
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
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);
}
}
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);
}
}
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
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
Je crois que j ai trouve mon bonheur ici https://www.roscripts.com/php_regular_expressions_examples-136/
Bien a vous
Yazou
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
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
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question