remplacement dans une chaine?

remplacement dans une chaine? - PHP - Programmation

Marsh Posté le 16-07-2003 à 01:51:58    

Hello,
j'ai une chaîne de caractères du type : 0000000000
et je voudrais remplacer le 5e zéro par exemple par 1. Quelle est la fonction PHP permettant de faire çela? J'ai parcouru la doc PHP (en tapant str ou replace dans ma recherche) mais je n'ai pas trouvé la dite fonction.
Merci d'avance

Reply

Marsh Posté le 16-07-2003 à 01:51:58   

Reply

Marsh Posté le 16-07-2003 à 02:01:44    

Reply

Marsh Posté le 16-07-2003 à 02:06:16    


ben non :D
la première me coupe la chaine, la 2e va me remplacer tout mes 0 par 1. En alliant les 2 on y arrive bien sur mais moi je cherchais une fonction qui te le fait tout seul genre tu met:
 

Code :
  1. $string = "00000";
  2. fonction("1",5,$string);

 
où fonction() serait la fonction que je recherche, 5 le n° du caractère que je veut remplacer.
Enfin, si y'en a pas, y'en a pas :D
Merci quand même. ;)


Message édité par Kt-Redfox le 16-07-2003 à 02:06:37
Reply

Marsh Posté le 16-07-2003 à 02:19:17    

Bah je ne sais pas si il y a une fonction qui le fasse, mais autrement ca doit pas être trop dur à écrire  :sarcastic:

Reply

Marsh Posté le 16-07-2003 à 02:23:00    

Yana a écrit :

Bah je ne sais pas si il y a une fonction qui le fasse, mais autrement ca doit pas être trop dur à écrire  :sarcastic:  


nan je sais c pas dur mais c'était juste pour savoir  :D

Reply

Marsh Posté le 16-07-2003 à 02:34:57    

Nexen ?

Reply

Marsh Posté le 16-07-2003 à 02:43:36    

KT-RedFOX a écrit :

Hello,
j'ai une chaîne de caractères du type : 0000000000
et je voudrais remplacer le 5e zéro par exemple par 1. Quelle est la fonction PHP permettant de faire çela? J'ai parcouru la doc PHP (en tapant str ou replace dans ma recherche) mais je n'ai pas trouvé la dite fonction.
Merci d'avance


Code :
  1. $str = '0000000000';
  2. $res1 = ereg_replace('^(....).','\11',$str);
  3. $res2 = substr($str,0,4).'1'.substr($str,5);

Reply

Marsh Posté le 16-07-2003 à 02:47:09    

Toucouch a écrit :


Code :
  1. $str = '0000000000';
  2. $res1 = ereg_replace('^(....).','\11',$str);
  3. $res2 = substr($str,0,4).'1'.substr($str,5);




merci  :jap:  
juste une question concernant le code, a quoi sert exactement le ereg_replace ici?

Reply

Marsh Posté le 16-07-2003 à 02:55:54    

KT-RedFOX a écrit :


merci  :jap:  
juste une question concernant le code, a quoi sert exactement le ereg_replace ici?


Ben, je t'ai mis 2 solutions... La première ($res1) utilise une expression régulière (expression rationnelle, pour les puristes), la seconde ($res2) utilise l'opérateur de concaténation de chaînes et la fonction substr().
 
Perso, je préfère la première... Pour faciliter la réutilisation de cette première solution (remplacement du ixième caractère), tu peux aussi utiliser la regex suivante:

Code :
  1. ^(.{4}).

Reply

Marsh Posté le 16-07-2003 à 02:57:23    

Tu auras compris qu'il faut remplacer le 4 (5-1) par la valeur de (x-1), hein!

Reply

Marsh Posté le 16-07-2003 à 02:57:23   

Reply

Marsh Posté le 16-07-2003 à 02:59:29    

Toucouch a écrit :


Ben, je t'ai mis 2 solutions... La première ($res1) utilise une expression régulière (expression rationnelle, pour les puristes), la seconde ($res2) utilise l'opérateur de concaténation de chaînes et la fonction substr().
 
Perso, je préfère la première... Pour faciliter la réutilisation de cette première solution (remplacement du ixième caractère), tu peux aussi utiliser la regex suivante:

Code :
  1. ^(.{4}).




c nickel, merci beaucoup!  :jap:  
(Je vais me servir de ta dernière expression régulière car je donnais ici juste un exemple :D)

Reply

Marsh Posté le 16-07-2003 à 03:06:20    

KT-RedFOX a écrit :


c nickel, merci beaucoup!  :jap:  
(Je vais me servir de ta dernière expression régulière car je donnais ici juste un exemple :D)


De rien! Sur ce, bonne nuit! :hello:

Reply

Sujets relatifs:

Leave a Replay

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