Découpage de chaine

Signaler
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Bonjour,

alors voilà j'ai une chaine de caractère sous le format suivant :

$perimetre=35xxx[yyy]/zz(libelle)

Comment faire pour découper cette chaine afin d'avoir

$perim=35xxx;
$groupe=yyy;
$type=zz;
$label=libelle;

Sachant que la structure sera toujours la même mais que parfois les champs ne seront pas complétés !!!
Par avance merci !!

6 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello, quand tu dis non complétés, ça se traduit comment au juste ?
$perimetre=35xxx[yyy]/zz(libelle)

=>
$perimetre=35xxx[]/zz(libelle)
ou
$perimetre=35xxx/zz(libelle)
?

De toutes façons, à priori, il faudra faire appel à une expression régulière.
(et preg_match_all ())
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

Alors en fait je récupère une chaine comme ça :

$ptr=PERIMETRE=35EPCI01[EPCI]/RM(Metropole par );DATE_ENTREE=01/01/2005;DATE_SORTIE=31/12/2999;TYPE_ELT=comm(commune)

Donc voici ce que j'ai fait :

$tab = explode (';', $ptr);
foreach ($tab as $val) {
$tabNext = explode ('=', $val);
$tabNext[0] = strtolower($tabNext[0] );
$$tabNext[0] = $tabNext[1];
}
echo $perimetre, '
';

list($code, $groupe, $varzone, $labelperim) = split('[/(', $perimetre);
$perimetre=$code;
echo $perimetre, '
';
list($groupe) = split('[]]', $groupe);
echo $groupe, '
';
echo $varzone, '
';
list($labelperim) = split('[)]', $labelperim);
echo $labelperim, '
';



//DETAIL DU TYPE_ELT
list($type_elt, $labeltype) = split('[(]', $type_elt);
echo $type_elt, '
';
list($labeltype) = split('[)]', $labeltype);
echo $labeltype, '
';
echo $echelle, '
';

ça semble fonctionner !!! là il y a bcp d'echo histoire de voir si ça marche !! dis moi ce que tu en penses ??!! bon!!?? pas bon !!??
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
Je me demande comment on peut avoir à récupérer des chaines aussi chiante que ca :)

T'es sur que t'as pas un autre moyen pour arriver à tes fins que d'utiliser une chaine comme ca?
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

ben oui c'est clair !!! mais j'peux pas faire autrement !!!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Ma foi, si ton truc marche...garde-le :-) Ca t'évitera d'avoir à te lancer dans une expreg qui risque d'être complexe...
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
"

ben oui c'est clair !!! mais j'peux pas faire autrement !!!!" Si ca vient de ton script si :)

autrement, faut jouer avec les expressions régulières !