La fonction StringSplit(), bien que très utile en l'état, présente deux inconvénients:
1-Lorsque elle est utilisée avec l'option $STR_CHRSPLIT, elle ne retourne pas les caractères
qui ont provoqué les coupures, par exemple:
StringSplit("a+b*c", "+-*/")
retourne le tableau [3,a,b,c] mais ne retourne pas le caractère entre a et b, ou entre b et c.
2-Avec l'option $STR_ENTIRESPLIT elle coupe la chaine initiale chaque fois qu'elle détecte une chaîne
donnée mais pas un modèle de chaîne (regexp). Par exemple, pour splitter une chaîne html au niveau de
chaque balise, on ne peut pas utiliser StringSplit. Ce serait pourtant utile pour effectuer un
traitement sur le texte brut, par exemple une traduction En->Fr, avec l'objectif de recoller les
morceaux après.
Je propose donc qu'on améliore StringSplit en:
StringSplitEx($sString, $sRegex, $bWithMatch = False)
Si $bWithMatch est à true, le tableau retournée serait:
[0]: nombre d'éléments
[1]: sous-chaîne avant le 1er match ou "" si le 1er match est au début
[2]: 1er match
[3]: sous-chaine qui sépare le 1er match du 2nd, éventuellement "" si deux matchs se suivent
[4]: 2-ième match
[5]: sous-chaine qui sépare le 2nd match du 3-ième, éventuellement "" si deux matchs se suivent
[6]: 3-ième match
etc....
Après traitement des éléments IMPAIRS du tableaux $arr, on recollerait les morceaux avec:
Toi, qui t'ennuies à mourir à la plage, sous un soleil de plomb, je ne veux surtout pas
te priver du plaisir de programmer en te donnant la solution!
Bonnes vacances.