Rechercher : dans
Par :

Fonction pour remplacer des strings (php)

Dernière réponse le 11 fév 2008 à 22:39:11 yazou, le 11 fév 2008 à 17:07:37 
 Signaler ce message aux modérateurs

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

Configuration: Windows Vista
Firefox 2.0.0.12

Meilleures réponses pour « fonction pour remplacer des strings (php) » dans :
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
[PHP] Fonction mail() VoirLa fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
[PHP] Méthodes de débogage VoirI. Informations sur une variable I.1 echo I.2 print_r() I.3 var_dump() / var_export() I.4 Rediriger la sortie (ne pas afficher à l'écran) II. "Backtrace" ou rapport de contexte III. Bien utiliser les rapports d'erreur IV. Le mot clé...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...

1

styvodiabolo, le 11 fév 2008 à 17:28:47

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);
}
}

Répondre à styvodiabolo

2

yazou, le 11 fév 2008 à 20:19:45

Merci
Je crois que j ai trouve mon bonheur ici http://www.roscripts.com/PHP_regular_expressions_examples-13­6.html

Bien a vous
Yazou

Répondre à yazou

3

yazou, le 11 fév 2008 à 21:48:57

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

Répondre à yazou

4

 styvodiabolo, le 11 fév 2008 à 22:39:11

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.

Répondre à styvodiabolo