Bonjour,
La solution à ton problème passe par les expressions rationnelles.
Pour transformer la 7e virgule en deux virgules, utilise la fonction suivante :
$result6point5 = ereg_replace("(([^,]*,){7})(.*)", "\\1,\\3", $result6);
Pour l'explication : la fonction ereg_replace(string pattern, string replace, string cible) fait une recherche sur une chaine, d'après le paramètre pattern. Elle remplace ce pattern (motif, en Anglais) par ce qu'on lui donne en deuxième argument.
Le pattern que j'utilise est "(([^,]*,){7})(.*)"
On remarque 3 groupes parenthésés :
([^,]*,), que l'on va appeler \\2 (par convention de php, 2 parce que c'est la 2e parenthèse ouvrante)
(\\2{7}), que l'on va appeler \\1
et enfin
(.*), que l'on appelle \\3
Explication de chaque bloc.
\\1 signifie "\\2 est répété 7 fois".
\\2 signifie "tout sauf une virgule, répété indéfiniment, suivi d'une virgule. On reconnaît donc bien un bloc du style "abcdef,"
Donc, pour en revenir à \\1 , on comprend qu'on en arrive à la 7ème virgule.
\\3, lui, est tout simple : il signifie bêtement "n'importe quel caractère répété indéfiniment". C'est la fin de ta chaîne, qui n'a pas d'importance.
Ensuite, le deuxième argument, la chaine de remplacement.
C'est tout bête : je prends tout ce qu'il y a avant (soit "\\1"), je rajoute une virgule (c'est ce que tu veux faire, non ?), puis je colle derrière tout le reste, \\3. Ca donne bien "\\1,\\3".
Je t'invite à rechercher plus d'infos sur les expressions rationnelles sur le web, il doit y en avoir plein. (cherches aussi "expressions régulières", c'est une mauvaise traduction de l'anglais "regular expression", mais c'est très répendu...)
J'espère ne pas t'avoir trop embrouillé ^^
Xavier


