Fonction pour découper une chaine de caractères

Eléphanteau du PHP | 11 Messages

28 juil. 2011, 16:34

Bonjour et encore merci à tous ceuw qui ont déjà eu la gentillesse de m'aider dans mon appprentissage du PHP.

J'ai réussi à parser mon XML et dans la balise <description> je récupère des éléments de ce type:
<description>Au nord : Nuageux - 17° - pas de vent Au Sud : Soleil - 23° - vent 7kmh A l'Est : Soleil - 20° - vent 5kmh A l'Ouest : Ciel voilé - 19° - pas de vent<description>

Pour l'affichage je voudrais pouvoir afficher :

Au Nord : Nuageux - 17° - pas de vent
Au Sud : Soleil - 23° - vent 7kmh
A l'Est : Soleil - 20° - vent 5kmh
A l'Ouest : Ciel voilé - 19° - pas de vent

N'ayant pas de délimiteurs sur lesquels m'appuyer je pensais utiliser les occurrences "Nord", "Sud", "Est", "Ouest" qui sont présents dans toutes les descriptions de mes XML mais je ne sais pas par quel bout l'attraper.

Si vous pouviez m'aiguiller dans mes recherches, je vous en remercie.

Mammouth du PHP | 672 Messages

01 août 2011, 10:59

Bonjour.

Ca, ça n'est plus du XML mais du PHP...
Voir les fonctionspreg_*, ou plus siimple str_replace()

Vu le truc, je conseillerais plutôt la seconde, plus simple et plus rapide :
$cardinaux = Array ("Au Nord", "Au Sud", "A l'ouest", "A l'Est");
$formates = Array ("<b>Au Nord</b>", "<b>Au Sud</</b>", "<b>A l'ouest</b>", "<b>A l'Est</b>");
$resultat = str_replace ($description, $cardinaux, $formates);

Eléphanteau du PHP | 11 Messages

01 août 2011, 12:27

Merci beaucoup c'est exactement ce qu'il me fallait.
Juste au cas où quelqu'un devrait réutiliser cette info, le code exact est :
$cardinaux = Array ("Au Nord", "Au Sud", "A l'ouest", "A l'Est");
$formates = Array ("<b>Au Nord</b>", "<b>Au Sud</</b>", "<b>A l'ouest</b>", "<b>A l'Est</b>");
$resultat = str_replace ($cardinaux, $formates, $description, )
$description se place à la fin.

Merci encore pour votre aide MacGawel.