Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1417 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP Regex date + tel + caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP Regex date + tel + caracteres

n°1764112
kaldyris
Posté le 24-07-2008 à 10:57:32  profilanswer
 

Bonjour à tous,
J'ai un fichier texte rempli de ligne du type :
110/12/200711:30:32XXXXXXXXXXVALD'OISE00:00:0600:00:00Unique0,000
210/12/200711:30:32XXXXXXXXXXVALD'OISE00:00:0600:00:00Unique0,000
310/12/200711:30:32XXXXXXXXXXVALD'OISE00:00:0600:00:00Unique0,000
où le premier chiffre est le numéro de la ligne ( chiffre allant de 1 à 100 ), suivi de la date JJ/MM/AAAA puis de l'heure HH:MM:SS puis d'un numero de tel XXXXXXXXXX puis du lieu [a-z] et de la durée de l'appel.
J'aimerais extraire toutes ces données dans un joli tableau en php.
Pour celà, j'ai commencé à mettre en place ma regex :
 
preg_match('/[0-9]{1,3}'.'([0-9]{2}\/)'.'([0-9]{2}\/)'.'([0-9]{4})'.'([0-9:]{8})'.'([0-9]{8})'.'([^0-9]*)'.'([0-9:]{8})'.'([0-9:]{8})'.'([a-zA-Z]*)'.([0-9,]*)/',$ligne,$res1);
Mais elle ne marche pas vraiment..
Le premier probleme est de séparer le numero de la ligne ( j'arrive pas à faire une condition pour qu'il prenne les 2 caracteres avant le premier / ) puis ensuite de pouvoir recuperer les données une par une...
Merci de votre aide

mood
Publicité
Posté le 24-07-2008 à 10:57:32  profilanswer
 

n°1764121
kao98
...
Posté le 24-07-2008 à 11:11:13  profilanswer
 

Question :  
imaginons qu'une ligne commence comme ça :
111/12/2008
111, c'est ligne #1 du 11/12/2008, ou ligne #11 du 1/12/2008 ?
 
L'idéal à mon sens, ce serait un sépérateur pour les données dans le fichier texte, et un split. Mais bon, si le fichier txt t'es imposé ...


Message édité par kao98 le 24-07-2008 à 11:12:41

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1764126
kaldyris
Posté le 24-07-2008 à 11:17:50  profilanswer
 

Malheureusement, le fichier texte est imposé.
Oui c'est bien la ligne 1 du 11/12/2008
 
j'avance pas à pas avec :  
 
preg_match('/([0-9]{2}\/)([0-9\/]{7})(.*)/',$ligne,$res1);
echo "<br />Date ".$res1[1].$res1[2];
echo "<br />Reste ".$res1[3];
 
où j'arrive à recuperer la date avec $res1[1].$res1[2] et le reste avec $res1[3] mais chaque fois que j'augmente la regex, soit ca marche plus, soit ca dérègle tout.

n°1764129
kaldyris
Posté le 24-07-2008 à 11:19:41  profilanswer
 

Résolu  ( merci siteduzero ^^ )
 
$ligne = "110/12/200711:30:320102030405VALD'OISE00:00:0600:00:00Unique0,000";
preg_match( '`^([0-9]{1,3})([0-9]{2}/[0-9]{2}/[0-9]{4})([0-9]{2}:[0-9]{2}:[0-9]{2})([0-9]{10})([^0-9]*)([0-9]{2}:[0-9]{2}:[0-9]{2})([0-9]{2}:[0-9]{2}:[0-9]{2})([a-zA-Z]*)([0-9,]*)`' , $ligne , $res1);
 
var_dump($res1);


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP Regex date + tel + caracteres

 

Sujets relatifs
[PHP] Frmwrk MVC, adapté à toutes les situations ? (quiche inside :-o)caractères bizarres si accents, cedilles, ...
remplacer des caracteresPHP move upload files bizarre
[Réglé] regex qui va paschaine de caractères javascript
[PHP]Recuperer l'ip d'un client connecté sur un serveur socket.Problème d'initialisation d'un tableau de caractères
HTML,PHP,JAVASCRIPT et image... 
Plus de sujets relatifs à : PHP Regex date + tel + caracteres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR