fractionner une chaine de caractères

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

atomikado
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 149
Inscription: Lun Sep 22, 2003 9:50

fractionner une chaine de caractères

Message le Dim Jan 22, 2006 15:02

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
 
Messages: 6
Inscription: Sam Aoû 13, 2005 15:11

Re: fractionner une chaine de caractères

Message le Dim Jan 22, 2006 15:26

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: Tout sélectionner
$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 15:33, édité 1 fois.

atomikado
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 149
Inscription: Lun Sep 22, 2003 9:50

Message le Dim Jan 22, 2006 15:28

j'ai pris cette phrase au hasard, (peut être pas le meilleur exemple) mais ca peut être n'importe quelle phrase...


drigaudiere
Nouveau WRInaute
 
Messages: 6
Inscription: Sam Aoû 13, 2005 15:11

Message le Dim Jan 22, 2006 15:36

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
WRInaute occasionnel
 
Messages: 149
Inscription: Lun Sep 22, 2003 9:50

Message le Dim Jan 22, 2006 16:54

ca fonctionne avec split et le séparateur |

merci !

muelsaco
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 128
Inscription: Jeu Jan 19, 2006 15:05

Message le Dim Jan 22, 2006 21:09

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];


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités