Flux rss
Rechercher : dans
Par :

[PHP] expressions regulières

jjvmaster, le lundi 29 mai 2006 à 14:32:22 
 Signaler ce message aux modérateurs

Bonjour,
Malgré des nombreuses recherches sur Google et sur le Forum CCM je n'arrive toujours pas a me depatouiller des ces expressions regulieres.
Mon probleme est le suivant:
Je dispose d'un fichier texte qui est de cette forme :

Conducteur VALJEAN JEAN N° de matricule:0315092999
04/2006 Début Fin Amp Cond. Trav. Att. Doub. Repos Serv. T.E­. Km Vt Nuit

Dim 2 22:01 24:00 1,99 1,92 0,08 1,99 1,99


Conducteur SUFFIT SAM N° de matricule : 033111111

Détail par Semaine - Découpage jour calendaire -
04/2006 Début Fin Amp Cond. Trav. Att. Doub. Repos Serv. T.E­. Km Vt Nuit
Sam 1 0:36 5:12 4,61 3,73 0,62 0,22 0,05 4,56 4,56


( J'ai bien sur tronqué la majorité des informations et le fichier en lui même comporte un grand nombre de conducteurs.)

Mon but étant de récuperer le nom et le prenom de chaque Conducteur et de l'afficher dans une liste.
J'ai donc décidé d'utiliser les expressions regulieres mais malgré tout mes efforts mon code ne fonctionne pas:

<?

$fp = fopen("*****.txt","r");

while (!feof($fp))
{
$page .= fgets($fp,4096);
}

$chaine = eregi("Conducteur(.*) N°",$page,$res);
// je suis sur que c'est ici qu'est le probleme

for($i=0;$i<1000;$i++)
{
print($res[$i]);
print("<br>");
}
fclose($fp);
?>


Le probleme vient de la fonction eregi que j'ai du mal à manipuler.
Apparement l'élément "Conducteur(.*) N°" n'est pas bon. Pourtant la synthaxe me parait bonne (J'isole ce qui se trouve entre Conducteur et N° et je le rentre dans l' Array $res; je sais aussi que je devrais faire un for pour que chaque conducteur trouvé sois mis dans une case differente de l'Array mais vu que la premiere occurence ne marche pas je l'ai supprimé)

Ce que cela m'affiche:
En fait la fonction eregi rentre dans la premiere case de l'Array ce qui se trouve entre le Premier "Conducteur" et le Dernier "N°" du fichier texte ( J'ai donc 99% du fichier texte dans la premiere case du tableau et donc aucune liste ) , plutot que le "N°" qui se trouve juste apres.

Voila j'espere avoir exposé mon probleme correctement,
Merci aux futurs réponses et/ou aides.

1

cestadire.ch, le lundi 29 mai 2006 à 16:53:49
  • +1

//attention, ne marche que si le caractère "°"
//n'est présent que dans "N° de matricule"

preg_match_all("/Conducteur([^°]*)[N]/",$page,$res);

print_r($res[1]);

Répondre à cestadire.ch

2

cestadire.ch, le lundi 29 mai 2006 à 17:19:15
  • +1

//ou plus simple...

preg_match_all("/Conducteur(.*)N°/",$page,$res);

print_r($res[1]);

Répondre à cestadire.ch

3

 jjvmaster, le mardi 30 mai 2006 à 08:35:31

Ah en effet, je ne l'avais pas vu sous cette angle. Je m'etais inspiré du cours PHP de CCM avec l'exemple pour isoler une chaine :

$titre = eregi("<title>(.*)</title>",$page,$regs); //on isole le titre

/* Le titre commence par <title>,

puis contient n'importe quelle chaîne,

et se termine par </title> */

Apparement j'avais mal compris..

En tout cas mille fois merci !! T_T T_T ( larmes de joie )

Répondre à jjvmaster
[PHP] - expressions régulières, preg_match Bonjour, j'aimerais écrire un script PHP qui récupère tous les expéditeurs de ma inbox sur Firefox. Pour ceci, j'essaie d'utiliser preg_match_all.. mais je suis nulle avec les expressions régulières et ne trouve pas de bon tutoriel. J'aimerais... www.commentcamarche.net/forum/affich-6047880-php-expressions-regulieres-preg-match
[PHP]Expression régulière & condition if (Résolu) Bonjour, J'ai un petit souci pour réaliser mon back-office. J'ai deux pages pour mettre à jour mes dates. La première page contient le tableau avec les champs pré-remplis. Tout fonctionne, mais quand j'ai voulu mettre une expression régulière, celle... www.commentcamarche.net/forum/affich-3211608-php-expression-reguliere-condition-if
Php expressions regulieres Bonjour, Voila, j'ai un petit probleme qui se pose a moi !! J'essaye avec les espressiosn regulieres en PHP de trouver un nombre entre 1 et 60. J'ai donc essayé pleins de trucs depuis 1h comme [0-59] ([0-5]?/d{1} (1|2|3|4|5)/d ....... en gros ce ne... www.commentcamarche.net/forum/affich-2121303-php-expressions-regulieres
[RegExp] Récupérer une adresse IPFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la... www.commentcamarche.net/faq/sujet-911-regexp-recuperer-une-adresse-ip
Vérifier le format d'une date en PHPIl existe plusieurs méthodes pour verifier le format d'une date en PHP, vous pouvez par exemple découper la chaîne puis tester les valeurs de chaque élément. Plus simplement nous utiliserons les expressions régulières. Pour valider une date au... www.commentcamarche.net/faq/sujet-9883-verifier-le-format-d-une-date-en-php
[PHP] Transformer une URL en lien hypertexte cliquableGrâce aux expressions régulières, il est possible de transformer en lien hypertexte toute URL de la forme http://URL (ou ftp://URL) ou bien commençant par www. : www.commentcamarche.net/faq/sujet-891-php-transformer-une-url-en-lien-hypertexte-cliquable
Expression reguliere dans phpbonjour tous le monde ; pourriez vous me dire si cette expression régulière est correcte et qu'elle modélise bien une adresse ip : "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" merci d'avance www.commentcamarche.net/forum/affich-1426017-expression-reguliere-dans-php
[Expression régulière]Chaine de 9 chiffres (Résolu)Bonjour Voila je suis une bille en expression régulière et j'aimerais bien un peu d'aide ;p Je voudrais vérifier qu'une chaine n'est composée que de 9 chiffres ni plus ni moins. Exemple : 123456789 Est que quelqu'un aurait une idée de comment faire ?... www.commentcamarche.net/forum/affich-3172818-expression-reguliere-chaine-de-9-chiffres
Expression régulière : Petit problème (Résolu)Bonjour, Alors voilà: Je suis en projet et je dois développer en php un automate pour le web. J'ai appris très recemment qu'on pouvait utiliser les expressions régulières mais comme je n'y connait rien, même avec la doc php.net et des essais ben là ça... www.commentcamarche.net/forum/affich-2141005-expression-reguliere-petit-probleme
Javascript - L'objet RegExpLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des... www.commentcamarche.net/contents/javascript/jsregexp.php3