|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
atomikado WRInaute occasionnel

Inscrit le: 22 Sep 2003 Messages: 149 Localisation: Bretagne
|
Posté le : Dim Jan 22, 2006 16:02 Sujet du message: fractionner une chaine de caractères |
|
|
bonjour,
je voudrais savoir quel est la fonction php la mieux adaptée pour fractionner une chaine de caractères en fonction de plusieurs caracteres.
exemple :
je veux fractionner :
"nous sommes le dimanche 22 janvier 2006,il est 14 heures 58"
grace aux mots "le" et "janvier" et obtenir :
$tableau[0]="nous sommes ";
$tableau[1]=" dimanche 22 ";
$tableau[2]=" 2006,il est 14 heures 58";
merci
 |
|
| |
|
 |
drigaudiere Nouveau WRInaute
Inscrit le: 13 Aoû 2005 Messages: 6
|
Posté le : Dim Jan 22, 2006 16:26 Sujet du message: Re: fractionner une chaine de caractères |
|
|
| atomikado a écrit: |
bonjour,
je voudrais savoir quel est la fonction php la mieux adaptée pour fractionner une chaine de caractères en fonction de plusieurs caracteres.
exemple :
je veux fractionner :
"nous sommes le dimanche 22 janvier 2006,il est 14 heures 58"
grace aux mots "le" et "janvier" et obtenir :
$tableau[0]="nous sommes ";
$tableau[1]=" dimanche 22 ";
$tableau[2]=" 2006,il est 14 heures 58";
|
Je peux t'aider en te donnant une expression régulière à utiliser.
hormis la date et l'heure il y a d'autres choses qui sont variables dans ta phrase ?
Par exemple, je vois que tu mets "nous sommes " dans une variable, mais si c'est fixe pourquoi parser la ligne pour récupérer ce segment ?
Tes nombres sont toujours sur 2 chiffres ?
tu auras 8 heures 7 ou 08 heures 07 ?
Tu peux aussi utiliser la fonction split (attention syntaxe peut être fausse, je ne fais pas de PHP, mais si ton PHP est PCRE, Perl Compatible Regular Expression, la regex sera bonne)
| Code: |
$tableau = split('le|janvier|février|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|décembre', $date);
|
David "Sniper" Rigaudiere
Dernière édition par drigaudiere le Dim Jan 22, 2006 16:33; édité 1 fois |
|
| |
|
 |
atomikado WRInaute occasionnel

Inscrit le: 22 Sep 2003 Messages: 149 Localisation: Bretagne
|
Posté le : Dim Jan 22, 2006 16:28 Sujet du message: fractionner une chaine de caractères |
|
|
| j'ai pris cette phrase au hasard, (peut être pas le meilleur exemple) mais ca peut être n'importe quelle phrase... |
|
| |
|
 |
drigaudiere Nouveau WRInaute
Inscrit le: 13 Aoû 2005 Messages: 6
|
Posté le : Dim Jan 22, 2006 16:36 Sujet du message: fractionner une chaine de caractères |
|
|
| atomikado a écrit: |
| j'ai pris cette phrase au hasard, (peut être pas le meilleur exemple) mais ca peut être n'importe quelle phrase... |
Le parsing des données dépend fortement des données, il n'y a pas de solution miracle.
Mieux tu connais le format des données et plus ton "fractionnement" sera efficace.
Si la "coupure" se fait avec les mêmes termes split() est souvent la solution, sinon une expression régulière avec une commande match() ou assimilée aide souvent.
Si les champs sont fixes pack()/unpack() seront plus efficaces (je ne sais pas si PHP a l'équivalent, je code en Perl).
J'ai édité mon premier post pour ajouter un exemple avec split().
Il te faudra aussi regarder une introduction aux expressions régulières si tu ne connais pas.
David "Sniper" Rigaudiere |
|
| |
|
 |
atomikado WRInaute occasionnel

Inscrit le: 22 Sep 2003 Messages: 149 Localisation: Bretagne
|
Posté le : Dim Jan 22, 2006 17:54 Sujet du message: fractionner une chaine de caractères |
|
|
ca fonctionne avec split et le séparateur |
merci ! |
|
| |
|
 |
muelsaco WRInaute occasionnel

Inscrit le: 19 Jan 2006 Messages: 128
|
Posté le : Dim Jan 22, 2006 22:09 Sujet du message: fractionner une chaine de caractères |
|
|
Tu peux aussi utiliser explode:
$str=explode(" le ","nous sommes le dimanche 22 janvier 2006,il est 14 heures 58");
$tableau[0]=$str[0];
$str=explode(",",$str[1]);
$tableau[1]=$str[0];
$tableau[2]=$str[1]; |
|
| |
|
 |
| |
|
|