Tom's Guide > Forum > Programmation > [RESOLU] [PHP] Extraction spéciale dans une chaine de caracteres

[RESOLU] [PHP] Extraction spéciale dans une chaine de caracteres

Forum Programmation : [RESOLU] [PHP] Extraction spéciale dans une chaine de caracteres

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour.

J'ai des chaine de caracteres genre :

"12:38:12"
"6:12:7"
"2:0:5"

enfin, en regle générale : "X:Y:Z" ou X, Y et Z peuvent representer des nombres à 1 ou 2 chiffres.

Ce que je voudrais faire :
extraire justement X, Y et Z séparément !
Et je trouve que c'est compliqué car substr($chaine, 0, 2) extraira tantot deux chiffre, tantot un seul chiffre avec deux points...

donc si vous avez une idée. merci


Message édité par dacque le 06-02-2007 à 00:13:33
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Bonsoir,
je ne suis pas vraiment calé en php, mais je pense que ce que tu cherches, c'est la fonction explode.
Ca donnerai un truc du genre:

$resultat=explode(":",$chaine)
$resultat est un array.
Si par exemple, tu as $chaine="XX:Y:ZZ",
alors:
$resultat[0]="XX"
$resultat[1]="Y"
$resulta[2]="ZZ"

Pour plus d'infos, tu peux aller voir par la

Bonne soirée :)

Répondre à Halike

ou si tu veux forcer le type de chaine, une regexp:

Code :
  1. preg_match('!(\d{1,2}):(\d{1,2}):(\d{1,2})!', $chaine, $vals);


Message édité par crazycat@idn le 04-02-2007 à 21:30:31
------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Opte plutot pour la solution du explode() php car au moins, tu comprendra ce que tu fais :) (et ça sera moins lourd à gérer pour si peu...)

Répondre à MoOx_t

ça dépend... le explode() permet d'extraire les différentes parties de la chaine, le preg_match() permet en plus de vérifier que la chaine ressemble bien à ce qu'elle doit être et pas xx:yy

Répondre à crazycat@idn

Vi pour une vérification c même sur. Après c'est à lui de décider selon qu'il veuille vérifier le format ou non...

------------------------------ Programmeur n.m : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.
Répondre à MoOx_t

Merci de vos idées... Bon finalement, j'avais cherché tout seul, et j'ai trouvé ca... Je poste ma solution (qui toutefois me semble mal habile) mais qui MARCHE néanmoins. J'edite le post en RESOLU, si ca peut servir a quelqu'un plus tard.
Merci encore a+

AVOIR X
#####################
$x=$machaine{0};
if($machaine{1} != ':'){
$x=$x.$machaine{1};
}
#####################

AVOIR Y
#####################
$z=$machaine{strlen($machaine)-1};
if($machaine{strlen($machaine)-2} != ':'){
$z=$machaine{strlen($machaine)-2}.$z;
}
#####################

AVOIR Z
#####################
if(strlen($x)==2){
$y=$machaine{3};
if($machaine{4} != ':'){
$y=$y.$machaine{4};
}
}
if(strlen($x)==1){
$y=$machaine{2};
if($machaine{3} != ':'){
$y=$y.$machaine{3};
}
}
#####################

Répondre à dacque

je confirme, c'est malhabile et très peu optimisé.
Par contre, tu t'es bien amusé sur le parse de chaines au moins :)

Répondre à crazycat@idn

OUha ultra lourd le truc !
Bon si ça marche... Quand même, t'aurais plus vite fai avec un explode... mais bon...

------------------------------ Programmeur n.m : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.
Répondre à MoOx_t
Tom's Guide > Forum > Programmation > [RESOLU] [PHP] Extraction spéciale dans une chaine de caracteres
Aller à :

Il y a 1772 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens