Modération MAJ MIN

Modération MAJ MIN - PHP - Programmation

Marsh Posté le 03-01-2008 à 12:13:02    

iop & bonne année 2008 :)
 
je nage un peu sur une fonction PHP : je cherche à remplacer certains mots par d'autres, tout en faisant abstraction de la casse de celui ci
 
exemple (alacon) :

Code :
  1. $phrase = "viagra, vIAgra, pORN, porn";
  2. $censoref = array("viagra", "porn" );
  3. $censorer = array("Powered by Pfizer", "Explicit content" );
  4. echo $phrasec = str_replace($censoref, $censorer, $phrase);


 
dans ce cas, le résultat sera : Powered by Pfizer, vIAgra, pORN, Explicit content
 
comment puis je faire pour récupérer les mots, qu'ils soient en majuscules ou en minuscules, sans modifier la casse du reste de la phrase ?
 
merci !


---------------
☢ Hail to the Ping Baby ! ☢
Reply

Marsh Posté le 03-01-2008 à 12:13:02   

Reply

Marsh Posté le 03-01-2008 à 12:14:20    

Reply

Marsh Posté le 03-01-2008 à 12:22:29    

Fatal error: Call to undefined function: str_ireplace() in /mnt/146/free.fr/f/5/*** on line...


---------------
☢ Hail to the Ping Baby ! ☢
Reply

Marsh Posté le 03-01-2008 à 12:23:41    

str_ireplace n'est dispo qu'avec PHP5... Le mieux alors est de tout mettre en minuscules par exemple, via strtolower

Reply

Marsh Posté le 03-01-2008 à 12:26:29    

j'ai bien essayé, mais je ne souhaite pas modifier le reste de la casse de $phrase
 
si quelqu'un aurait une autre solution je prend aussi ;)


---------------
☢ Hail to the Ping Baby ! ☢
Reply

Marsh Posté le 03-01-2008 à 12:30:17    

Ah ouais effectivement... Alors tape dans preg_replace sinon, y'a pas d'autres choix

Reply

Marsh Posté le 03-01-2008 à 13:17:43    

sur free il y a le support php5 :o
Au choix:

  • renommer ton script.php en script.php5
  • mettre un htaccess ( php 1 )

Reply

Marsh Posté le 03-01-2008 à 13:42:06    

tu fais le strtolower sur une copie de la chaine puis tu fais un strpos de ce que tu cherches ds les chaines formaté ensuite qd tu as la position tu fais du substr dans la chaine qui a la bonne casse, et le tour est joué.

Reply

Marsh Posté le 03-01-2008 à 14:08:39    

yellu a écrit :

tu fais le strtolower sur une copie de la chaine puis tu fais un strpos de ce que tu cherches ds les chaines formaté ensuite qd tu as la position tu fais du substr dans la chaine qui a la bonne casse, et le tour est joué.


trop capilotracté pour moi  :pt1cable:  
 
codé ca donnerais quoi ?


---------------
☢ Hail to the Ping Baby ! ☢
Reply

Marsh Posté le 03-01-2008 à 14:33:24    

nan mais c'est surtout pas une bonne idée hein :o
Si tu ne veux pas passer en php5, utilise preg_replace comme le conseillais florentG !!!

Code :
  1. $phrase = "viagra, vIAgra, pORN, porn";
  2. $censoref = array("/viagra/i", "/porn/i" );
  3. $censorer = array("Powered by Pfizer", "Explicit content" );
  4. echo $phrasec = preg_replace($censoref, $censorer, $phrase);


Reply

Marsh Posté le 03-01-2008 à 14:33:24   

Reply

Marsh Posté le 03-01-2008 à 15:00:12    

yep merci :) ca marche plutôt comme je le souaitais.

 

Dernière question : pour la ponctuation (. + - #...)

 


edit : non c'est bon

Code :
  1. array("/\./", ...


Message édité par daDD le 03-01-2008 à 15:11:39

---------------
☢ Hail to the Ping Baby ! ☢
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed