IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Récupérer le S/N + le prix


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut [Système] Récupérer le S/N + le prix
    Bonjour,

    Je suis en stage et je dois créer une page dynamique qui va récupérer 2 informations dans un fichier CSV (non modifiable et qui change régulièrement).

    L'exportation en csv n'est pas très propre mais je n'ai pas le choix.
    Et je me demande tout simplement si c'est réalisable, voici un extrait du fichier avec en rouge les champs que je dois récupérer (ID + PRIX):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Cartes d'affichages Graphiques AGP et PCI;;
    fonctionnalités 3D et Vidéo;;
    ;;
    Réf;;Prix Publics H.T.
    ;;EURO
    ;CARTES GRAPHIQUES PCI EXPRESS;
    ;;
    G55+MDHA32DBF;Carte graphique MATROX AGP G550 double écran 32 Mo (bulk);96
    ;recommandée avec les RT2500-RTX10-RTX100;
    ;;
    G55+MDHA32DRF;Carte graphique MATROX AGP G550 double écran 32 Mo (retail);105
    ;carte AGP , chip MATROX G550, mémoire DDR 32 Mo, RAMDAC 360 Mhz,support du 3D , ;
    ;livrée avec logiciels (Digimask pour la reconstitution 3D,Plug-in Powerpoint, Visio-Téléphone, DVD,;
    ;Headcasting pour la communication 3D) ;
    ;;
    G55LOWPROF;Carte graphique MATROX AGP G550 double écran 32 Mo Low Profile (bulk);105
    ;;
    PH-A8X128;Carte graphique MATROX AGP PARHELIA tri-écran 128 Mo-8x (retail);331
    ;Carte AGP - Interface mémoire 512 bits DDR - Mémoire 128 Mo DDR - Multiaffichage - triple RGB, DUAL DVI;
    ;Sortie TV avancée - performance élevée 2D, 3D, et vidéo - jeux surround - giga color 10 bits - AGP 8X;
    ;Cette carte graphique a été spécialement pensée pour le marché des stations de travail 2D, 3D ;
    PH-A8X256;Carte graphique MATROX AGP PARHELIA tri-écran 256 Mo-8x (retail);561
    Ce que je remarque pour le moment c'est que lorsqu'on trouve l'ID, ça respecte la syntaxe suivante:

    ID;Description;prix

    Mais le problème c'est qu'il y a des lignes en plus qui fausse la donne (genre la description dont je n'ai pas besoin)

    Merci d'avance de vos réponses

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Ca doit etre faisable avec des expressions régulières. Une chose que tu peux remarquer est que quand une ligne est valide pour toi (que tu veux en extraire des informations) elle se termine toujours par ;nombre

    Ca me semble meme faisable avec un simple découpage de chaines:
    1/ tu lis le fichier en intégralité
    2/ avec explode tu récupères un tableau qui contient chaque ligne
    3/ pour chaque ligne, tu découpes en fonction des ";" et tu récupères un tableau de 3 champs.
    4/ Si la dernière valeur est un entier et que la première valeur est non vide alors tu as surement ton identifiant et ton prix, sinon c'est une ligne qui ne t'interesse pas

  3. #3
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    euh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('#^([^;]+);([^;]+);([0-9]+)$#m', $csv, $matches, PREG_SET_ORDER);
    ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Merci de vos réponses.

    Qql peut me traduire cette regexp?

    #^([^;]+);([^;]+);([0-9]+)$#m

  5. #5
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    Tout d'abord, si tu ne connais pas les regex PCRE (les preg_*), il faut des délimiteurs (ici les #) qui serviront à séparer la chaine d'expression réguliere des options (le m à la fin ici).

    L'option m signifie que je souhaite que les caractères de début et de fin de ligne (respectivement ^ et $) s'appliquent à chaque ligne et qu'il ne faut pas que le systeme prenne la chaine comme une seule et meme ligne (ou le ^ signifierai le tout début de ta chaine et $ la fin de la chaine).

    La classe (c'est ainsi que ça s'appel) [^;] signifie n'importe quel caractère qui n'est pas un ;.

    Le + signifie AU MOINS 1 fois.

    La traduction littéraire de cette regex serait :

    Toute ligne qui commence par une suite de caractères (excepté le suivi d'un ; suivi encore une fois d'une suite de caractères (excepté le encore suivi d'un ; et se terminant par une suite de chiffres.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] Récupérer l'adresse MAC de la machine
    Par la.musaraigne dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 27/01/2011, 14h08
  2. Réponses: 2
    Dernier message: 24/08/2006, 10h46
  3. [Système] Récupérer une valeur dans un texte
    Par Netoman dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2006, 14h54
  4. Réponses: 3
    Dernier message: 01/02/2006, 23h17
  5. [Système] récupérer l'HTML généré par ma page PHP
    Par saint-pere dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2005, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo