Str_ireplace() pour php 4

cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010 - 16 sept. 2009 à 17:22
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010 - 17 sept. 2009 à 15:49
Bonjour à tous,

Je cherche une fonction équivalente à str_ireplace() de php5 pour php4.
Je ne peux pas mettre à jour mon serveur qui est en production.
Ma contrainte c'est le temps d'éxécution .

Merci d'avance.

8 réponses

cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
16 sept. 2009 à 17:33
Je suppose qu'avec un preg_replace on peut s'en sortir ?!
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
16 sept. 2009 à 17:49
Bonsoir,

function php4_str_ireplace($search, $replace, $subject) {
  if (is_array($search)) {
   foreach ($search as $word) $words[] = "/".$word."/i";
  }else $words = "/".$search."/i";

  return preg_replace($words, $replace, $subject);
}


ce code devrait faire l'affaire

bonne soirée
0
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
17 sept. 2009 à 09:18
Bonjour 47,

Merci pour ta réponse, c'est presque ce que je veux mais j'aurai dû être plus précis :
Mon but est de colorier les occurrences trouvés dans un texte tout en conservant leurs attribut, j'entends par là leurs accents, la casse etc...

Exemple :

$chaine='ceci est une chaine avec un CAractére à trouver';
$cherche='caractere';
$remplace=''.$chaine_origine_trouve.'';

$resultat='ceci est une chaine avec un CAractére à trouver';
ceci est une chaine avec un CAractére à trouver
0
zpef Messages postés 30 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 26 janvier 2011
17 sept. 2009 à 10:08
Valentino,

Pour faire ce que tu souhaites, il te suffit, en utilisant la fonction fournie par 47, de mettre ceci pour la chaîne de remplacement :
$remplace = '\0';

Consulte la documentation de preg_match ! Tapez le texte de l'url ici.
0

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

Posez votre question
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
17 sept. 2009 à 14:38
Merci à vous,
Effectivement cela fonctionne mieux mais cela n'est pas encore sa :

$subject = 'CONDITION DE REGLEMENT : aux débits (fournitures) ou aux règlements (prestataires de services).';
$search = 'reglement';
$replace = '\0';
$result=php4_str_ireplace($search, $replace, $subject);

echo $result;

Après fais un essai avec $search = 'règlement';
0
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
17 sept. 2009 à 14:46
J'ai vraiment du mal avec les expressions régulières...
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
17 sept. 2009 à 15:21
re,

et en remplaçant $search 'reglement'; par $search 'r[èe]glement'; ?

bonne après midi
0
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
17 sept. 2009 à 15:49
Oui effectivement mais le problème c'est que le $search est le résultat d'un POST non déterminé à l'avance... j'aimerai bien ne pas être obligé de transcoder tous les caractères accentués du style [éèe] etc...
Il n'y a pas plus simple directement à partir regex ?
J'ai recherché partout sur le net des exemples équivalent et tous ce heurtent au problème des caractères accentués... en général ils veulent les virer, facilllle !
Déjà en cours je n'aimai pas les expressions régulières (mais j'admet que c'est très puissant, vive le grep) mais c'est de pire en pire avec l'âge
0
Rejoignez-nous