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 :

[Tableaux] Extraire des données d'un tableau f(char)


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut [Tableaux] Extraire des données d'un tableau f(char)
    Je cherche une expréssion réglière

    J'ai un tableau de ce type
    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
    <!-- SW --><TABLE WIDTH=100%><TD CLASS=pt>Nom du système<TR><TD><HR></TABLE>
    <TABLE><TR><TD WIDTH=16><TD WIDTH=16><TD WIDTH=16><TD WIDTH=16><TD WIDTH=16>
     
    <TR><TD><TD><TD><B>Type</B>&nbsp;&nbsp;<TD CLASS=cc><B>Classe</B>&nbsp;&nbsp;<TD><B>Nom du système</B>
     
    <TR><TD><TD><TD>Commentaire associé à l'ordinateur&nbsp;&nbsp;<TD CLASS=cc>Logique&nbsp;&nbsp;<TD>
     
    <TR><TD><TD><TD>Nom NetBIOS&nbsp;&nbsp;<TD CLASS=cc>Logique&nbsp;&nbsp;<TD>PORTABLE
     
    <TR><TD><TD><TD>Nom d'hôte DNS&nbsp;&nbsp;<TD CLASS=cc>Logique&nbsp;&nbsp;<TD>portable
     
    <TR><TD><TD><TD>Nom de domaine DNS&nbsp;&nbsp;<TD CLASS=cc>Logique&nbsp;&nbsp;<TD>
     
    <TR><TD><TD><TD>Nom complet DNS&nbsp;&nbsp;<TD CLASS=cc>Logique&nbsp;&nbsp;<TD>portablee
     
    <TR><TD><TD><TD>Nom NetBIOS&nbsp;&nbsp;<TD CLASS=cc>Physique&nbsp;&nbsp;<TD>PORTABLEW
    <TR><TD><TD><TD>Nom d'hôte DNS&nbsp;&nbsp;<TD CLASS=cc>Physique&nbsp;&nbsp;<TD>portablee
    <TR><TD><TD><TD>Nom de domaine DNS&nbsp;&nbsp;<TD CLASS=cc>Physique&nbsp;&nbsp;<TD>
    <TR><TD><TD><TD>Nom complet DNS&nbsp;&nbsp;<TD CLASS=cc>Physique&nbsp;&nbsp;<TD>portablee
    </TABLE><BR><BR>
    Ce n'est qu'une partie, il doit y avoir une centaine de tableau comme ca dans chacune des pages. J'aimerais rechercher et extraire une cinquantaine de valeur.
    Les regexp m'ont paru comme étant la solution la plus simple et rapide. Dommage que je sache pas encore en faire d'aussi évoluer.


    Est-il possible de chercher une chaine : "<tr><td><td>nom<td>valeur" puis d'en extraire la valeur ?

    Je crois qu'il faut que je mette une regexp par chaine rechercher (nom), ce qui ne me pose pas de problème. Je peut faire la regexp pour trouver la chaine, mais l'extraire, non ... donc ce que j'ai fait ne me sert à rien.

    Quelqu'un pourrait il m'éclairer ? preg_macth_all() est-elle la bonne méthode ?

    + La valeur ou le nom peut contenir un lien ... Mais la pour le moment, j'aimerais déj) extraire ce qu'il y a après la balise <td> d'une ligne.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    oui, c'est possible

    http://fr2.php.net/manual/fr/functio...-match-all.php
    http://g-rossolini.developpez.com/tu...ns-regulieres/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $texte='...<td>...nom...valeur...';
    $masque='#<tr><td><td>([^<]+)<td>([^<]+)#Usi';
     
    preg_match_all($masque, $texte, $resultats);
     
    echo '<pre>';
    var_dump($resultats[2]);
    echo '</pre>';

  3. #3
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    On l'utilise comment ta regexp ? comme ca ?
    <?php
    $texte
    ='<tr><td><td><td>nom<td>valeur
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<tr><td><td><td>nom2<td>valeur2'
    ;
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $masque='#<tr><td><td>nom<td>(&#91;^<]+)#Usi';

    preg_match_all($masque, $texte, $resultats);

    echo
    '<pre>';
    print_r($resultats);
    echo
    '</pre>';

    ?>
    Si oui ca ne fonctionne pas ...

    Je cherche des nom précis dans une page avec une valeur quelconque.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    hum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $texte='<tr><td><td><td>nom<td>valeur<...
                <tr><td><td><td>nom<td>valeur2<...';
     
    $masque='#<tr><td><td><td>nom<td>([^<]+)<#Usi';
     
    echo preg_match_all($masque, $texte, $resultats);
     
    echo '<pre>';
    var_dump($resultats);
    echo '</pre>';
    testé et approuvé.

    dans ton code, tu as un <td> de trop en plus entre le texte et le masque

  5. #5
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Ce que j'ai, c'est 15000 ligne de tableaux.
    Dans ces 15000, j'ai besoin de 200-300 lignes.

    Chaque ligne est composé de cette manière : <tr><td><td><td>nom<td>valeur

    Avec ta méthode, si j'ai tout compris, je vais récupérer les 15000 lignes dans un tableau, puis je devrait les traiters en comparant le nom avec un autre tableau pour prendre ce que je souhaite.

    Je trouve que cette méthode est un poil trop lourde non ?
    Ca ne serait pas plus simple de chercher une ligne particulière puis d'en extraire la valeur, même si on doit faire ca 300 fois ?

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    rien ne t'empeche de faire 1 seule expression pour recuperer uniquement les 300 lignes ;o)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $listeNoms=array('nom1', 'nom2', 'nom3', ...);
     
    $masque='#<tr><td><td><td>('.implode('|', $listeNoms).')<td>([^<]+)<#Usi';
    Ensuite, tu obtient un tableau de 300 elements et tu peux faire correspondre les noms et les valeurs que tu souhaite parmis les 300

  7. #7
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Ok, ca fonctionne. Par contre il y a quelque défauts.


    Voila le texte qui sert d'exemple :
    <?php
    $texte
    ='
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" CONTENT="EVEREST v2.80.534">
    <STYLE>
    A { text-decoration: none }
    A:hover { text-decoration: underline }
    TD { font: 80% verdana, tahoma, ms sans serif, arial; color: #000000; vertical-align: text-center; text-align: left }
    TD.cr { font: 80% verdana, tahoma, ms sans serif, arial; color: #000000; vertical-align: text-center; text-align: right }
    TD.cc { font: 80% verdana, tahoma, ms sans serif, arial; color: #000000; vertical-align: text-center; text-align: center }
    TD.pt { font: bold 140% verdana, tahoma, ms sans serif, arial; color: #000080; vertical-align: text-center }
    TD.dt { font: bold 110% verdana, tahoma, ms sans serif, arial; color: #000080; vertical-align: text-center }
    </STYLE>
    <TITLE>Rapport sur &lt;PCDELLBA&gt;</TITLE>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF">

    <TABLE WIDTH=100%><TD CLASS=pt>EVEREST Ultimate Edition 2006 &copy; 2003-2006 Lavalys, Inc.<TR><TD><HR></TABLE><TABLE><TR><TD WIDTH=16><TD WIDTH=16><TD WIDTH=16><TD WIDTH=16>
    <TR><TD><TD><TD>Version&nbsp;&nbsp;<TD>EVEREST v2.80.534/fr
    <TR><TD><TD><TD>Module de benchmark&nbsp;&nbsp;<TD>2.0.139.0
    <TR><TD><TD><TD>Site web&nbsp;&nbsp;<TD><A HREF="http://www.lavalys.com/" TARGET=blank>http://www.lavalys.com/</A>
    <TR><TD><TD><TD>Type de rapport&nbsp;&nbsp;<TD>Générateur de rapports
    <TR><TD><TD><TD>Ordinateur&nbsp;&nbsp;<TD>PCDELL (PC)
    <TR><TD><TD><TD>Générateur&nbsp;&nbsp;<TD>BA
    <TR><TD><TD><TD>Système d\'exploitation&nbsp;&nbsp;<TD>Microsoft Windows XP Professional 5.1.2600 (WinXP Retail)
    <TR><TD><TD><TD>Date&nbsp;&nbsp;<TD>2006-08-02
    <TR><TD><TD><TD>Heure&nbsp;&nbsp;<TD>10:27
    </TABLE><BR><BR>



    <HR>
    <BR>
    The names of actual companies and products mentioned herein may be the trademarks of their respective owners.<BR>
    </BODY>
    </HTML>';?>

    Le code qui me sert :
    <?php
    $masque
    ='#<tr><td><td><td>Ordinateur&nbsp;&nbsp;<td>([^<]+)<#Usi';

    echo
    preg_match($masque, $texte, $resultats);

    echo
    '<hr>';
    echo
    '<pre>';
    echo
    var_dump($resultats);
    echo
    '</pre>';

    ?>




    Dans cet exemple, on voit bien qu'il reste des espaces (parfois des tabulations) et parfois un chevron (<) après la valeur. Tu saurais comment viré ca ?
    Pour les &nbsp; je verrais ca plus tard.


    Et voila le code pour le tableau (que je compte utilisé quand le premier sera terminé)
    <?php
    $listeNoms
    =array('Ordinateur&nbsp;&nbsp;', 'Générateur&nbsp;&nbsp;');

    for (
    $i = 0; $i <= 1; $i++)
    {
    $masque='#<tr><td><td><td>('.$listeNoms[$i].')<td>([^<]+)<#Usi';
    echo
    preg_match($masque, $texte, $resultats[$i]);
    }


    echo
    '<hr>';
    echo
    '<pre>';
    echo
    var_dump($resultats);
    echo
    '</pre>';

    ?>

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    il suffit d'appliquer la fonction trim() sur tout les resultats pour virer les espaces en trop.

    il ne PEUX PAS y avoir de chevrons dans les valeurs puisque le masque est [^<]+


    Juste une remarque quand meme :
    La page d'ou tu récupere tes valeurs est pas du tout correcte !. Je ne sais pas d'ou elle vient, mais ca dénote un manque certain de rigueur et de connaissance de la part de la source. En conséquence, je te conseille d'etre extremement prudent quand a la fiabilité des données récupérées. De plus, si dans un éclair de lucidité l'auteur de la page décide de la formater correctement, il faudra revoir ta regexp.

    Evite donc aussi de prendre exemple sur le contenu de cette page pour faire tes propres tableaux html hein :/

  9. #9
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    La page viens du logiciel Everest (anciennement Aida), il permet de récupérer énormement d'information sur un PC. Ca me permet de mantenir à jour ma base de données sur le parc informatique.

    La page ne sera pas mise à jour si j'utilise toujours la même version du logiciel.
    Mes tableaux sont corrects, la méthode du logiciel existe mais n'est pas recommandé.

    Je fait ce genre de truc moi (tu remarquera au passge la joli erreur qui n'existe pas en local, plus le temps de mettre à jour).

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par Space Cowboy
    Mes tableaux sont corrects, la méthode du logiciel existe mais n'est pas recommandé.
    ah, oui, je viens de verifier sur un autre site, les balises </td> sont optionnelles... comme quoi on en apprend tout les jours ;o)

    Citation Envoyé par Space Cowboy
    Je fait ce genre de truc moi (tu remarquera au passge la joli erreur qui n'existe pas en local, plus le temps de mettre à jour).
    rholala, quel code html propre ;o) ok ok, j'ai rien dis
    (ai pas d'erreurs chez moi)

  11. #11
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Je fais la page entièrement et je la poste dès que j'aurais fini. Ce week-end avec de la chance. La je m'éclate avec mes serveur et mes câbles réseaux.

    http://ac2.bdd.free.fr/index.php?p=c...&obj=Mati%E8re (en bas)

  12. #12
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    J'ai un petit problème.

    La regexp ne fonctione pas quand il y a des accents ou des ' ...

  13. #13
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    essaye d'utiliser preg_quote sur le premier parametre de preg_match

  14. #14
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Importation de rapport Everest

    Everest (anciennement aida) permet de générer des rapports détaillé d'une machine, aussi bien a niveau matériel que logiciel.
    Type de processeur, ram, cg, windows, clé de windows, imprimmante installé etc ...
    Les rapports générer doivent être en HTML.

    J'ai donc fait un script php qui permet d'enregistrer un rapport sur le serveur, le lire le fichier sur le serveur et d'enregistrer certaine données du rapports dans une base de données MySQL grâce à PHP.
    Les données à extraire sont dans un tableau en début de page.
    Tout les rapports sont enregistrés dans un dossier, indiqué en début de page.
    En même temps que le rapports

    La classe de connexion php.
    Le fichier de test : http://rhombus.ifrance.com/Portable.htm (enregistrer sous)
    Il faut penser à décommenter l'execution de la requête.

    Pour ajouter des à récupérer dans le rapports, il faut allez les chercher la ou ils sont annoncé.
    Par exemple pour récupérer la version de OS, il faudrat mettre dans le tableau $listeValeur Système d'exploitation

    <h2>Importations des rapports everest</h2><?php
    // Définition des colonnes à prendre en compte pour chacun des fichiers
    if (!isset($_POST['fichiers']) ) $fichiers[] = "";
    else
    $fichiers[] = $_POST['fichiers'];
    if (!isset(
    $_POST['sendadd']) ) $sendadd = "";
    else
    $sendadd = $_POST['sendadd'];

    if (!isset(
    $_POST['utilisateur']) ) $utilisateur = "";
    else
    $utilisateur = $_POST['utilisateur'];
    if (!isset(
    $_POST['site']) ) $site = "";
    else
    $site = $_POST['site'];
    if (!isset(
    $_POST['servicetag']) ) $servicetag = "";
    else
    $servicetag = $_POST['servicetag'];
    if (!isset(
    $_POST['tag']) ) $tag = "";
    else
    $tag = $_POST['tag'];
    if (!isset(
    $_POST['batterie_sn']) ) $batterie_sn = "";
    else
    $batterie_sn = $_POST['batterie_sn'];
    if (!isset(
    $_POST['alimentation_sn']) ) $alimentation_sn = "";
    else
    $alimentation_sn = $_POST['alimentation_sn'];
    if (!isset(
    $_POST['garantie']) ) $garantie = "";
    else
    $garantie = $_POST['garantie'];

    // Liste des données à récupérer !
    $listeValeur=array('Ordinateur', 'Générateur');
    $chemin = 'fichier/rapport/'; // Répertoire contenant les fichiers
    $sql = ''; // Initialisation de la requête SQL.
    $j=0;
    $erreur="";
    ?>


    <form method="post" action="" enctype="multipart/form-data" />
    <table border="1">
    <tbody>
    <tr>
    <td><strong>Utilisateur : &nbsp;</strong></td>
    <td><input type="text" name="utilisateur" size="20" value="<?php echo $utilisateur; ?>" /></td>
    <td><strong>Site : &nbsp;</strong></td>
    <td><input type="text" name="site" size="20" value="<?php echo $site; ?>" /></td>
    </tr>
    <tr>
    <td><strong>Service Tag : &nbsp;</strong></td>
    <td><input type="text" name="servicetag" size="20" value="<?php echo $servicetag; ?>" /></td>
    <td><strong>Tag : &nbsp;</strong></td>
    <td><input type="text" name="tag" size="20" value="<?php echo $tag; ?>" /></td>
    </tr>
    <tr>
    <td><strong>S/N Batterie : &nbsp;</strong></td>
    <td><input type="text" name="batterie_sn" size="40" value="<?php echo $batterie_sn; ?>" /></td>
    <td><strong>S/N Alimentation : &nbsp;</strong></td>
    <td><input type="text" name="alimentation_sn" size="40"<?php echo $alimentation_sn; ?> /></td>
    </tr>
    <tr>
    <td><strong>Garantie : &nbsp;</strong></td>
    <td colspan="3"><input type="text" name="garantie" size="40" value="<?php echo $garantie; ?>" /></td>
    </tr>
    <tr>
    <td colspan="1"><strong>Fichiers : &nbsp;</strong></td>
    <td colspan="3"><input type="file" name="fichiers[]" size="70" /></td>
    </tr>
    <tr>
    <td colspan="4"><input type="submit" name="submit" value="Envoyer" /><input type="hidden" name="sendadd" value="ok"></td>
    </tr>
    </tbody>
    </table>
    </form>
    <?php
    if ($fichiers != "" && $sendadd == "ok")
    {

    // Upload du fichier sur le serveur
    // ==================================================================================

    // Enregistrement des noms de fichiers envoyés et temporaire
    $nom_du_fichiers = $_FILES['fichiers']['name'][0];
    $nom_du_fichiers_temporaire = $_FILES['fichiers']['tmp_name'][0];

    //Now it's OK, upload !
    if (copy($nom_du_fichiers_temporaire, $chemin.$nom_du_fichiers)) // $chemino
    {
    echo
    "Upload réussi du rapport : <strong>" .$nom_du_fichiers. "</strong>.<br />";
    // Début de lecture du fichier sur le serveur
    // ==================================================================================

    echo "<br /><br /><strong>Début de la lecture et de l'enregistrement du rapport Everest ... </strong><br />";
    // Permet de récupérer le contenu d'un fichier ou une url
    $rapport = file_get_contents($chemin.$nom_du_fichiers);


    $taille_listeValeur = count($listeValeur); // Enregistrement de la taille du tableau pour terminer la requete SQL

    // Initialisation de la requête
    $sql = "INSERT INTO `inv_pc`
    VALUES ( '', `"
    .$utilisateur. "`, `NOW()`, `" .$nom_du_fichiers. "`, `" .$site. "`,
    `"
    .$servicetag. "`, `" .$tag. "`, `" .$batterie_sn. "`,
    `"
    .$alimentation_sn. "`, `" .$garantie. "`, ";
    // Traitement
    foreach($listeValeur as $valeur)
    {
    // Création du masque
    $masque='#<tr><td><td><td>('.preg_quote($valeur).')&nbsp;&nbsp;<td>([^<]+)<#Usi';
    // Execution de la requête
    preg_match($masque, $rapport, $resultats);

    // Incrémentation d'une valeur pour détecter la fin du tableau $listeValeur
    $j++;

    // Enregistrement de la valeur dans la requête
    $sql .= "'" .$resultats[2];

    // Détection de la fin du tableau
    if ( $j != $taille_listeValeur ) $sql .= "',";
    else
    $sql .= "');";

    // Affichage du nom de la valeur et ca valeur enregistré pour information
    echo '&nbsp; &nbsp;' .$valeur. ' : <strong>' .$resultats[2].'</strong><br />';
    }

    // ==================================================================================
    // Fin de lecture du fichier sur le serveur
    echo "<strong> ... Fin de la lecture du rapport.</strong>";

    // Affichage de la requête
    echo '<br /><br />' .$sql. '<br />';
    // Execution de la requête
    //$db_s->query($sql);

    }
    else
    $erreur = "Echec de l'upload du rapport <strong>!</strong>";

    echo
    '<br /><span class="text_alert">' .$erreur. '</span><br />';

    //Si le fichier temporaire n'a pas été effacé par le serveur
    if (is_file($nom_du_fichiers_temporaire))
    @
    unlink($nom_du_fichiers_temporaire);
    }
    ?>

  15. #15
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Je met le code du rapport :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" CONTENT="EVEREST v2.80.534">
    <STYLE>
    A { text-decoration: none }
    A:hover { text-decoration: underline }
    TD { font: 80% verdana, tahoma, ms sans serif, arial; color: #000000; vertical-align: text-center; text-align: left }
    TD.cr { font: 80% verdana, tahoma, ms sans serif, arial; color: #000000; vertical-align: text-center; text-align: right }
    TD.cc { font: 80% verdana, tahoma, ms sans serif, arial; color: #000000; vertical-align: text-center; text-align: center }
    TD.pt { font: bold 140% verdana, tahoma, ms sans serif, arial; color: #000080; vertical-align: text-center }
    TD.dt { font: bold 110% verdana, tahoma, ms sans serif, arial; color: #000080; vertical-align: text-center }
    </STYLE>
    <TITLE>Rapport sur &lt;MRO&gt;</TITLE>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF">
     
    <TABLE WIDTH=100%><TD CLASS=pt>EVEREST Ultimate Edition 2006 &copy; 2003-2006 Lavalys, Inc.<TR><TD><HR></TABLE><TABLE><TR><TD WIDTH=16>&nbsp;<TD WIDTH=16><TD WIDTH=16><TD WIDTH=16>
    <TR><TD><TD><TD>Version&nbsp;&nbsp;<TD>EVEREST v2.80.534/fr
    <TR><TD><TD><TD>Module de benchmark&nbsp;&nbsp;<TD>2.0.139.0
     
    <TR><TD><TD><TD>Site web&nbsp;&nbsp;<TD><A HREF="http://www.lavalys.com/" TARGET=blank>http://www.lavalys.com/</A>
    <TR><TD><TD><TD>Type de rapport&nbsp;&nbsp;<TD>Générateur de rapports
    <TR><TD><TD><TD>Ordinateur&nbsp;&nbsp;<TD>MRrrrrrrrrO
    <TR><TD><TD><TD>Générateur&nbsp;&nbsp;<TD>mogenerateur!
    <TR><TD><TD><TD>Système d'exploitation&nbsp;&nbsp;<TD>Microsoft Windows XP Professional 5.1.2600 (WinXP Retail)
    <TR><TD><TD><TD>Date&nbsp;&nbsp;<TD>2006-06-16
    <TR><TD><TD><TD>Heure&nbsp;&nbsp;<TD>16:30
    </TABLE><BR><BR>
     
    <HR>
    <BR>
    The names of actual companies and products mentioned herein may be the trademarks of their respective owners.<BR>
    </BODY>
    </HTML>

    La base de données dans mon exemple commence par un certain nombre de champ car j'enregistre d'autre données en même temps que le rapport.
    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
     
    CREATE TABLE `inv_pc` (
      `pc_id` int(11) NOT NULL auto_increment,
      `pc_utilisateur` varchar(255) NOT NULL default '',
      `pc_date` DATETIME NOT NULL default '',
      `pc_rapport` varchar(255) NOT NULL default '',
      `pc_site` varchar(255) NOT NULL default '',
      `pc_servicetag` varchar(255) NOT NULL default '',
      `pc_tag` varchar(255) NOT NULL default '',
      `pc_batterie_sn` varchar(255) NOT NULL default '',
      `pc_alimentation_sn` varchar(255) NOT NULL default '',
      `pc_garantie` varchar(255) NOT NULL default '',
    ...
      PRIMARY KEY  (`pc_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2014, 10h34
  2. [XL-2010] extraire des données d'un tableau vers différents onglets selon la valeur d'une cellule
    Par piloupilou82 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 17/11/2013, 17h38
  3. Réponses: 1
    Dernier message: 07/04/2008, 16h11
  4. [Tableaux] Trier des données d'un tableau
    Par Joe Le Mort dans le forum Langage
    Réponses: 8
    Dernier message: 07/05/2007, 17h55
  5. [Tableaux] affichage des données dans un tableau
    Par bilane dans le forum Langage
    Réponses: 1
    Dernier message: 21/03/2007, 17h31

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