Découpage de chaine

fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006 - 16 janv. 2006 à 14:41
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 16 janv. 2006 à 17:51
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 janv. 2006 à 14:54
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 ())
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
16 janv. 2006 à 15:17
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 !!??
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
16 janv. 2006 à 16:05
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?
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
16 janv. 2006 à 16:09
ben oui c'est clair !!! mais j'peux pas faire autrement !!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 janv. 2006 à 16:46
Ma foi, si ton truc marche...garde-le :-) Ca t'évitera d'avoir à te lancer dans une expreg qui risque d'être complexe...
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
16 janv. 2006 à 17:51
"

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 !
0
Rejoignez-nous