begin process at 2012 05 30 21:03:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Fonction modification chaine de caractère php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction modification chaine de caractère php

vendredi 7 janvier 2011 à 15:16:49 | Fonction modification chaine de caractère php

ccpu

Bonjour,

Je souhaiterais savoir si avec la fonction str_replace ou autre fonction, on peut remplacer une chaine de caractère mais deux fois. Je vous montre un exemple :
Chaine : "toto tata"
Je voudrais remplacer toto par un truc et tata par un autre truc en appelant une seule fois la fonction. Si besoin est je vous explique le contexte qui me force à ne l'utiliser qu'une seule fois. J'ai déjà essayé de faire une fonction qui fait deux fois str_replace mais ce fut un echec

Par avance, merci.
vendredi 7 janvier 2011 à 15:49:50 | Re : Fonction modification chaine de caractère php

ludwig59

Bonjour

Vous pouvez le faire avec str_replace en utilisant des tableaux comme paramètres.

Regardez ce lien : str_replace
vendredi 7 janvier 2011 à 16:03:06 | Re : Fonction modification chaine de caractère php

cod57

bonjour
une propos
a++

Code PHP :
<?php
function str_replace_all($search,$replace,$subject) {
  while(strpos($subject,$search)!==false) {
    $subject = str_replace($search,$replace,$subject);
  }
  return $subject;
}
  
function remplace($chaine,$arg1,$arg2,$motif){
$a=str_replace_all($arg1,$motif,$chaine);
$a=str_replace_all($arg2,$motif,$a);
return $a;
}

echo str_replace_all("titi","????","toto tata tata titi tutu toitoi tototutu").'<br />';
echo remplace("toto tata tata titi tutu toitoi tototutu","toto","titi","????");
?>
vendredi 7 janvier 2011 à 16:09:26 | Re : Fonction modification chaine de caractère php

ccpu

Merci à tous, mais en fait j'ai trouvé beaucoup plus simple, en réveillant...

str_replace("toto","truc1",str_replace("tata","truc2",$machaine));

vendredi 7 janvier 2011 à 16:11:04 | Re : Fonction modification chaine de caractère php

cod57

ou avec deux motifs ...

Code PHP :
<?php
function str_replace_all($search,$replace,$subject) {
  while(strpos($subject,$search)!==false) {
    $subject = str_replace($search,$replace,$subject);
  }
  return $subject;
}
  
function remplace($chaine,$arg1,$arg2,$motif1,$motif2){
$a=str_replace_all($arg1,$motif1,$chaine);
$a=str_replace_all($arg2,$motif2,$a);
return $a;
}

echo str_replace_all("titi","????","toto tata tata titi tutu toitoi tototutu").'<br />';
echo remplace("toto tata tata titi tutu toitoi tototutu","toto","titi","????","xxx");
?>
vendredi 7 janvier 2011 à 16:12:19 | Re : Fonction modification chaine de caractère php

cod57

moi aussi
$a=str_replace_all($arg1,$motif1,$chaine);
a++
vendredi 7 janvier 2011 à 16:19:40 | Re : Fonction modification chaine de caractère php

TychoBrahe

Salut,

Visiblement vous avez loupé la réponse de ludwig59 qui donne une solution car&#341;ement plus élégante au problème. À ce sujet, je compléterais sa réponse en indiquant une fonction très voisine qui fais la même chose mais de manière légèrement différente : strtr().
vendredi 7 janvier 2011 à 16:34:12 | Re : Fonction modification chaine de caractère php

TychoBrahe

Ho j'oubliais :

@cod57 : Ta fonction str_replace_all() ne sert strictement à rien, str_replace() remplace déjà toutes les occurrences de la chaîne à remplacer. Bref, ton while ne sert à rien car ne tourne que une seule fois au maximum. Après, comme je disais au dessus, ludwig59 à fait remarquer que l'utilisation de tableaux permet d'obtenir l'effet demandé, rendant ta fonction remplace() d'autant plus inutile qu'elle s'applique à un cas très particulier et ne risque donc pas de servir un jour.

Et si jamais vous avez du mal à comprendre, voici un exemple double :
Code PHP :
<?php

$str = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.';

$res = str_replace(array('et', 'it'), array('ET', 'IT'), $str);
var_dump($res);

$res = strtr($str, array('or' => 'OR', 'ct' => 'CT'));
var_dump($res);

?>

Code :
-> php toto.php
string(57) "Lorem ipsum dolor sIT amET, consectETur adipisicing elIT."
string(57) "LORem ipsum dolOR sit amet, conseCTetur adipisicing elit."
vendredi 7 janvier 2011 à 20:32:23 | Re : Fonction modification chaine de caractère php

cod57

@TychoBrahe
merci pour ces precisions constructives.
a++


Cette discussion est classée dans : fonction, php, caractère, chaine, modification


Répondre à ce message

Sujets en rapport avec ce message

Caractère bizare sous avec la fonction require() [ par Yoann0412 ] Bonjour,Lorsque j'utilise la fonction require() comme par exemple :  require ('security/nbconnect.php');?>j'ai, juste avant l'exécution (bienque corre chaine de caractère [ par emlesna ] Bonjour,Je souhaite créer une fonction qui convertit chaque caractère  situé  après un  "."  en  majusculedans une chaine de caractère $string.Sans me Calcul dans une chaine de caractère [ par djangoboy ] Bonjour à tous.Alors ma question est simple.Par exemple $p = '+'; $q = '-';et je fais $var = $var1 . $p . $var2 . $q . $var3;Ainsi ça me rend $var = ' Fonction qui vérifie la présence d'une partie d'une chaine caractère.. [ par Dure ] Bonjour, voila ma question est toute simple mais je n'ai pas trouver réponse sur google.Alors voila je voudrais savoir s'il existe une fonction php qu fonction php + supprimer des mots dans une chaine [ par hadjiphp ] Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : je cherche une fonction Transformation chaine de caractère. [ par fritz931 ] Bonjour tout le monde, J'ai un soucis pour transformer une chaine de caractère qui me servira à alimenter Highcharts. En gros je récupère mon array so appel a des fonction de la librairie .so via PHP [ par badsha ] bonjour! bonjour!! voila j'ai créé une librairie hello.so et je voudraire savoir comment faire appel à la fonction, " hello_world() " , de cette lib Onglet Actualité en php [ par bmounaj ] Salut, j'aimerai faire un onglet "ACTUALITE" dans mon site en php, et on m'a dit qu'il y'avait une fonction ou un bout de code tout prêt pour m'affich affichage en fonction des cases cochees [ par geoslim ] bonjour, j'ai un tableau avec un num, nom, service, tel ... extrait d'une base mysql j'y ai ajouter une case a choser a cote du num. je voudrais Problème fonction aff [ par PetiteNonne ] Bonjour, j'ai un problème que je n'arrive pas à résoudre seule. Ma page php se nomme connecter.php Ma variable : $connect <form name="Connect_View


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales