[php] expressions régulières
Résolu/Fermé
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
-
17 mai 2005 à 09:40
Dinheru Messages postés 1019 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 avril 2009 - 17 mai 2005 à 16:32
Dinheru Messages postés 1019 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 avril 2009 - 17 mai 2005 à 16:32
A voir également:
- [php] expressions régulières
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
- Php echo image ✓ - Forum PHP
3 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
17 mai 2005 à 10:17
17 mai 2005 à 10:17
En effet, il te faur ereg, mais pour cela, il aut que tu lise ligne par ligne ton fichier avec la fonction fgets.
Ensuite tu fais une selection sur le début de ligne qui correspond à la suite suivante de caractère : [tous sauf caractère séparateur]
Et tu prend la valeur premièere du tableau retourné (ereg retourne un tableau).
Voilà un exemple :
Ensuite tu fais une selection sur le début de ligne qui correspond à la suite suivante de caractère : [tous sauf caractère séparateur]
Et tu prend la valeur premièere du tableau retourné (ereg retourne un tableau).
Voilà un exemple :
<?php $fd = fopen( "monfichier.txt","r"); while( !feof($fd)) { $buffer = fgets($fd, 4096); if( ereg( "([^ ]{1,*}(.*)", $buffer, $regs) ){ echo "Partie selectionnee : ".$regs[0]."<BR>"; } else echo "pas de partie selectionnée ou pb<BR>"; } close($fd); ?> ++
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
67
17 mai 2005 à 11:07
17 mai 2005 à 11:07
Merci pour ton aide kij.
J'ai réussit à récupérer le premier nombre de mes lignes de cette façon :
et j'obtiens ceci :
14149.00 1048.00 327.00 Partie selectionnee : 14149.00
10032.00 1782.00 347.00 Partie selectionnee : 10032.00
Mais je ne trouve pas comment sélectionner le nombre du milieu et celui à la fin. Saurais-tu comment faire ?
Merci.
J'ai réussit à récupérer le premier nombre de mes lignes de cette façon :
$fichier = "test.txt"; if(is_file($fichier)) { if($tabfich = file($fichier)) { for( $i = 1 ; $i < 3 ; $i++ ) { $num = ereg("([0-9]{3,5}).([0-9]{2})",$tabfich[$i],$regs); echo $tabfich[$i]; echo "Partie selectionnee : ".$regs[0]."<BR>"; } } else { echo "Le fichier ne peut être lu...<br>"; } } else { echo "Désolé le fichier n'est pas valide<br>"; }
et j'obtiens ceci :
14149.00 1048.00 327.00 Partie selectionnee : 14149.00
10032.00 1782.00 347.00 Partie selectionnee : 10032.00
Mais je ne trouve pas comment sélectionner le nombre du milieu et celui à la fin. Saurais-tu comment faire ?
Merci.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
17 mai 2005 à 11:13
17 mai 2005 à 11:13
Si tes nombre sont outjours au nombre de trois et de la même forme oui :
Cela te découpe ta ligne en trois morceaux qui seront rangés respectivement dans $regs[0], $regs[1] et $regs[2].
++
ereg("([0-9]{3,5}.[0-9]{2})[ ]+([0-9]{3,5}.[0-9]{2})[ ]+([0-9]{3,5}.[0-9]{2})",$tabfich[$i],$regs);
Cela te découpe ta ligne en trois morceaux qui seront rangés respectivement dans $regs[0], $regs[1] et $regs[2].
++
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
67
17 mai 2005 à 11:23
17 mai 2005 à 11:23
Merci je vais essayer ça !!
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
>
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
17 mai 2005 à 11:24
17 mai 2005 à 11:24
regarde plus bas.
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
17 mai 2005 à 11:18
17 mai 2005 à 11:18
Salut vous deux
Ca ne serait pas plus simple d'utiliser une fonction split qui doit sûrement exister en PHP pour couper la chaîne à chaque espace?
Ca ne serait pas plus simple d'utiliser une fonction split qui doit sûrement exister en PHP pour couper la chaîne à chaque espace?
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
17 mai 2005 à 11:19
17 mai 2005 à 11:19
Si elle existe oui, je regarde...
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
17 mai 2005 à 11:22
17 mai 2005 à 11:22
oui en effet,merci teebo de cette remarque :
C'est plus simple et plus rapide.
Merci.
++
$tab = array(); list($tab[0],$tab[1],$tab[2] = split( '[ ]', $LaLigne);
C'est plus simple et plus rapide.
Merci.
++
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
67
17 mai 2005 à 13:52
17 mai 2005 à 13:52
Merci a vous pour votre aide !!
J'ai enfin réussit ^^
@+
J'ai enfin réussit ^^
@+
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
17 mai 2005 à 14:16
17 mai 2005 à 14:16
faut cocher le post en tant que "résolu" alors si c'est possible..
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
>
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
17 mai 2005 à 16:30
17 mai 2005 à 16:30
merci :)