Forum Programmation.php transfere les information d'un perl-script an une Page html

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-1
18
juin
2015

Salut a tous
j'ai deja eu a presenter une fois ce probleme sur le forum mais je n'etais pas tres clair dans mes explications.
Au fait j'ai un script perl que j'execute et qui me revoi des resulats que j'aimerai afficher sur une page web ceci sans web-server.
le front de ma page se presente comme vous le voyez , vous trouverez du code php c'est lui qui transferai les informations sur ma page web avec Xampp web-server, malheureusement mon maitre de stage n'aimerai pas qu'on utilise un web-server quelqu'un peut-il m'aider, si il ya possibilite de transfere mais informations sur ma page web sans web-server.

Merci

    <head>
        <meta  charset="UTF-8"/>
        <title>SYSTEMPARAMETERCOMPARE</title>
        <link href="style.css" type="text/css" rel="stylesheet"/>
    </head>
         <body>
    <div id="section_1">
        <font face="arial"><h1><a id="section_1_0">S</a>ystem<a id="section_1_0">P</a>arameter &emsp;<a id="section_1_0">C</a>ompare</h1></font>
    </div>

     <div id="section_2">
         <font face="arial" size="+2">(ARTEX)</font>
     </div>

 <?php


        $filePath = 'result_1.csv';

        $file = fopen($filePath, "r");

        $arrAllParams = [];

        while(!feof($file)){
             $line = fgets($file);
             $arrAllParams[] = $line;
         }

        fclose($file);
     ?>
     <?php

        foreach ($arrAllParams as $line) {
      ?>
            <div id="section_3">
                <font face="arial" size="+2"><?php echo $line; ?> </font>
             </div>
            <?php
        }
     ?>
     <div id="section_4"><a href="daten/result_1.csv">NEXT<img src="aiga.png"/></a></div>



</body>

<div id="footer">
   <p>&copy; 2015 copyright</p>
</div>  


  • # Generation

    Posté par  (site web personnel) . Évalué à 2.

    Du code html à partir du perl

    Système - Réseau - Sécurité Open Source

  • # Écrit un script qui fabrique une page HTML

    Posté par  (site web personnel) . Évalué à 2.

    Salut Henri,

    Écris un script Perl supplémentaire qui lit le fichier des résultats, puis formate les résultats dans une chaîne de caractères avec la mise en forme HTML, et enfin qui stocke cette chaîne dans un fichier.

    Pour la consultation, il n'y aura plus qu'à ouvrir le fichier final avec ton navigateur.

    Saisies-tu la différence entre un script couplé à un serveur web qui fabrique une sortie HTML et l'envoie automatiquement au navigateur, et un script qui fabrique une sortie HTML sans autres interactions ? C'est ton cas de figure.

    SA

    • [^] # Re: Écrit un script qui fabrique une page HTML

      Posté par  . Évalué à 0.

      Salut stepfan,

      je pense que je comprend un peu ceci
      " un script couplé à un serveur web qui fabrique une sortie HTML et l'envoie automatiquement au navigateur"

      mais le deuxieme pas du tout
      "script qui fabrique une sortie HTML sans autres interactions"

      et je pense que le deuxieme est celui donc j'ai besoin pour resoudre mon probleme, car la premiere est je pense ce que j'i deja eu a faire.

      • [^] # Re: Écrit un script qui fabrique une page HTML

        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 18 juin 2015 à 14:25.

        Oui, c'est la seconde version qu'il te faut.

        Ton premier script Perl, il écrit bien les résultats dans des fichiers "result_n.csv". Et bien regarde comment il procède et fait de même avec un nouveau script qui ouvre chaque fichier "result_n.csv", lit les lignes, ajoute le code HTML autour des lignes (concaténation) puis écrit le tout dans un fichier nommé "resultats.html".

        Lorsque tu aura fait ça, tu verra mieux la différence entre un code embarqué dans une page HTML (ta première solution) qui ne sert qu’à envoyer des résultats à un navigateur, et un code qui produit une sortie textuelle (HTML ou autre) dont on peut se servir comme on veut, y compris l'envoyer à un navigateur.

        SA

  • # je dois être trop vieux ...

    Posté par  . Évalué à 3.

    Je dois être trop vieux, mais c'est quoi un "web-server" ?
    Un serveur web je vois. Un serveur d'application je vois.
    Du fast-cgi je connais, de même que le CGI avec les modules DSO d'apaches (ou autre).

    Mais dire qu'il te faut afficher une page web (donc normalement poussé par un serveur web) sans serveur web… a part des pages html statiques, et que la solutions que tu souhaites utiliser c'est du python avec le mod_php , je me dis qu'il y a un truc que j'ai loupé.

    De plus je ne comprends vraiment pas ton problème, tu a un script qui execute un fichier, et tu as déjà le code php qui formatte tes résultats.
    soit tu modifies le script perl pour qu'il sorte un résultat en html, et si c'est le cas, un tour vers CPAN te permettrait de trouver rapidement la classe et les exemples "kivonbien".
    soit tu fait du traitement "hors ligne" pour reformater tes résultats (ton csv)
    -> soit tu le fait sur le langage que tu te sens le plus à l'aise. Aui hasard un script awk….
    -> soit tu réutilise le code php que tu as déjà pour qu'il soit utilisé sans serveur web (ps le nommage des variables qui ne corresponde pas à leur fonction (le $line dans le foreach), c'est "mal", surtout que lorsque fais une redéclaration ).
    (je crois que c'est ce que proposais Stéphane Aulery, enfin si j'ai bien compris son commentaire :) )

    Ps : je te le dis à tout hasard, mais je pense qu'il n'y a aucune chance que quiconque ici te fournisse le code qui correspond à ce que ton maitre de stage attend. Des conseils, où chercher etc… pas de soucis. Mais pas de solution "clés en main" ;)

    • [^] # Re: je dois être trop vieux ...

      Posté par  (site web personnel) . Évalué à 1.

      @briaeros007:

      Tu as bien compris mes interventions. Je ne donnerai pas plus de code que toi. Peut-être que ta formulation sera plus parlante. Je ne sais pas quels sont la culture, le niveau informatique, l'âge d'Henri. Difficile de répondre dans ces conditions sans s'appuyer sur un acquis.

      S'il ne comprend pas nos réponses, il peut toujours les montrer à son maître de stage et se faire expliquer concrètement la démarche.

      Vu le code qu'il a écrit et ses posts précédents sur le forum il est très capable, mais soit il n'a pas bien compris les demandes qui lui sont faites, soient les explications de l'encadrant sont insuffisantes sur le background technique.

      Toutefois, Henri devrait pouvoir se documenter sans peine sur le web. Je lui ai déjà donné des liens vers de la documentation sur Perl.

      @Henri:

      C'est important que tu rentres dans cette démarche d'aller chercher de l'info, de te documenter par toi-même, y compris sur des sujet bateaux. Sans cette attitude fondamentale tu n'arriveras a rien en développement, feras perdre du temps aux autres et te dégouteras.

      Ça pas interdit de demander sur les fora, mais c'est juste le coup de pouce, ou le dernier recourt.

      SA

  • # Orthographe

    Posté par  (site web personnel) . Évalué à -2.

    Ton français est meilleur que les fois dernières, merci. C'est pas encore Bizance, mais continues à faire des efforts, ça paye ;-)

    SA

  • # Tu y es presque je crois

    Posté par  . Évalué à 1.

    Si j'ai bien compris la problématique et si je ne dis pas de bêtises.

    il suffit que tu lances l’exécutable php avec comme paramètre ton fichier php et en redirigeant la sortie dans un fichier texte (le fichier html résultat).

    Par ex pour moi sous windows avec wampserver d'installé, je crée un fichier batch "test.bat" contenant:

    "C:\wamp\bin\php\php5.3.13\php.exe" -q %1 >>c:\temp\resultat.html

    puis dans la console dos je fais

    test.bat source.php

    avec source.php qui serait un fichier php comme celui tu as déjà écrit. et j'obtiens le fichier resultat.html

    • [^] # Re: Tu y es presque je crois

      Posté par  . Évalué à 1.

      Pour simplifier oublions le fichier batch

      donc directement dans la console je tape quelque chose comme:

      "C:\wamp\bin\php\php5.3.13\php.exe" -q c:\temp\source.php >>c:\temp\resultat.html

      • [^] # Re: Tu y es presque je crois

        Posté par  (site web personnel) . Évalué à 1.

        S'il est pressé il peut faire ça, mais ce serait mieux de désinstaller Wamp et d'installer un interpréteur PHP nu. Encore mieux, écrire le script Perl et ne pas installer d’interpréteur PHP pour 1 script.

        SA

        • [^] # Re: Tu y es presque je crois

          Posté par  . Évalué à -2.

          Merci bien de vos intervensions et de vos propositions et comme dit je ne suis pas un bon programmeur je me debrouille et cela me coute du temps, avec l'aide de certain personnes de ce forum j'apprend tous les jours et je pense que pour tout chacun a ete a unmoment donne dans ses debut.
          Pour le probleme mon Maitre de stage ne veut pas que j'utilise un server web (en anglais webserver) d'ou c'est la mon problem j'ai deja mes resultats sur de fichiers csv et j'ai la page que j'ai deja aussi fait en html/css les champ ou les resultats doivent etres affiche sont aussi visile sur la page.
          Avec un server web ou web-server le probleme serai resolu maintenant c'est pour moi un veritable probleme comment m'y prendre a ce que mes resutat soit affiche sur ma page html.

          imagine vous avez les resultats suivant:
          Nombre de parametres traite: 8
          Nombre de fichiers traite : 59
          Date et heure: 18.06.2015 17:35:23

          c'est un peut un appercu des resultats a afficher sur la page html

          • [^] # Re: Tu y es presque je crois

            Posté par  (site web personnel) . Évalué à 1.

            Ces trois lignes sont une synthèse du déroulement de l’exécution de ton script Perl, donc rien à voir avec le script PHP que tu a montré. N’as tu pas deux choses à faire : synthèse de l’exécution et affichage des résultats collectés dans les fichiers ?

            Ne te décourage pas, est-ce que l’énoncé est clair pour toi au moins ? Donne nous plus d’éléments à commencer par un extrait du fichier (sans dévoiler des choses confidentielles) et l’énoncé complet. Merci.

            SA

            • [^] # Re: Tu y es presque je crois

              Posté par  . Évalué à -2.

              Salut Stephan,
              voici un exemple de fichier, et je vais etre un peu plus clair comment les resultats sont fourni,
              mon premier perl-script_1 me donne le resultat suivant appellons le result_1.csv

              20150606 00:23:41

              default, primary, secondary, copy_directory, forced_copy_flag, always_allow_dump, type_of_dump, full_memory_dump,
              d100spuptl25e0, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 1 fault, disallow,
              doc10, 5 fault, 7 8 9 10 disallow,
              doc11, 5 fault, 7 8 9 10 disallow,
              doc12, 5 fault, 7 8 9 10 disallow,
              doc13, 5 fault, 7 8 9 10 disallow,
              doc14, 5 fault, 7 8 9 10 disallow,
              doc15, 5 fault, 7 8 9 10 disallow,
              doc16, 5 fault, 7 8 9 10 disallow,
              doc17, 5 fault, 7 8 9 10 disallow,
              doc18, 5 fault, 7 8 9 10 disallow,
              doc19, 5 fault, 7 8 9 10 disallow,
              doc1, /del, /dev/null, /ras, 1 0 fw-assisted, disallow,
              doc20, 5 fault, 7 8 9 10 disallow,
              doc21, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc22, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc23, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc24, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc25, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc26, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc27, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc28, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc29, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc2, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc30, /dev/lg_dumplv, /dev/sysdumpnull, //ras, 1 1 fw, disallow,
              doc31, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc32, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc33, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc34, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc35, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc36, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc37, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc38, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc39, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc3, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc40, /dev/lg_dumplv, /dev/sysdumpnull, /var/adm/ras, 1 fault, fw-assisted, disallow,
              doc41, 5 fault, 7 8 9 10 disallow,
              doc42, 5 fault, 7 8 9 10 disallow,
              doc43, 5 fault, 7 8 9 10 disallow,
              doc44, 5 fault, 7 8 9 10 disallow,
              doc45, 5 fault, 7 8 9 10 disallow,
              doc46, 5 fault, 7 8 9 10 disallow,
              doc47, 5 fault, 7 8 9 10 disallow,
              doc48, 5 fault, 7 8 9 10 disallow,
              doc49, 5 fault, 7 8 9 10 disallow,
              doc4, 5 fault, 7 8 9 10 disallow,
              doc50, 5 fault, 7 8 9 10 disallow,
              doc51, 5 fault, 7 8 9 10 disallow,
              doc52, 5 fault, 7 8 9 10 disallow,
              doc53, 5 fault, 7 8 9 10 disallow,
              doc54, 5 fault, 7 8 9 10 disallow,
              doc55, 5 fault, 7 8 9 10 disallow,
              doc5, 5 fault, 7 8 9 10 disallow,
              doc6, 5 fault, 7 8 9 10 disallow,
              doc7, 5 fault, 7 8 9 10 disallow,
              doc8, 5 fault, 7 8 9 10 disallow,
              doc9, 5 fault, 7 8 9 10 disallow,

              la premiere ligne comprend la date et l'heure ensuite suit le resultat proprement dit.

              mon deuxieme perl-script_2 me donne le resultat suivant appellons le result_2.csv

              Nombre de parametres compare = 7

              Nombre actuelle de systemes = 56
              Date = 20150617 13:00:13

              comment est ce qui est obtenu: Prend pour refence "default" tout en haut de mon result_1.csv ligne 2 apres la date et l'heure
              le nombre de parametres se trouve sur la l'horizontal a "default" et si tu les compte tu recevras 7 parametres et sur la vertical a "default" en dessous tu obtienras 56. pour la date elle s'obtient du moment ou j'execute mon perl-script_2

              Mon maitre de stage voudrai que sur la page-html ces trois resultats de result_2.csv apparaissent, de maniere a ce que si il ya un changement au niveau du nombre de systemes ou de parametres que celui si soit directement actualiser sur la page html,il faut tenir compte que les resultats changerons.
              voila presque tout

              • [^] # Re: Tu y es presque je crois

                Posté par  (site web personnel) . Évalué à 1.

                En fait tu n'as qu'un fichier à afficher, super. Donc quel est ton problème avec les explications que nous t'avons donné ? Pourquoi tu n'arrives pas à passer au codage ?

                C'est toi qui a écrit perl-script_2 ?

                SA

                • [^] # Re: Tu y es presque je crois

                  Posté par  . Évalué à -3.

                  clair c'est moi qui a ecrit ce script, dans le traitement des fichiers en Perl je possede deja pas mal de connaissance ce qui me menace encore dans le traitement des fichers en Perl ce sont les expressions regulaire j'ai encore des problemes.
                  a ma connaissance perl ne peut pas pouvoir transmettre des informations sur une page html sans l'aide d'un webserver ceci avec le module cgi de perl.
                  ici c'est un nouveau probleme donc qui n'a pas trop de lien avec Perl car de perl j'ai presque toute mes informations mais comment les affiches sur ma page web, de maniere a ce que lorsque les donnes changent, et que j'execute mon script perl que les informations change aussi automatiquement

                  • [^] # Re: Tu y es presque je crois

                    Posté par  (site web personnel) . Évalué à 1.

                    Quelle est cette page à mettre à jour ? Elle existe déjà ?

                    SA

                    • [^] # Re: Tu y es presque je crois

                      Posté par  . Évalué à -3.

                      La page est deja la je l'ai aussi faite avec mes petite connaissance en html/css et mon maitre de stage est satisfait

                      • [^] # Re: Tu y es presque je crois

                        Posté par  (site web personnel) . Évalué à 1.

                        Je suppose que c’est une page statique et que tu ne sais pas comment la mettre à jour ?

                        Tu n’a plus qu’à prendre le code de ta page et le mettre dans le second script Perl pour que chaque fois que tu l’exécute il fabrique la page en entier.

                        Une variante consiste à stocker le début et la fin de ta page HTML dans des fichiers annexes et à les charger à l’exécution de ton script.

                        SA

                        • [^] # Re: Tu y es presque je crois

                          Posté par  . Évalué à -2.

                          c'est cela mon probleme je ne sais pas comment m'y prendre, en php on trouve des exemples sur le net, 'ai aussi lu qu'il est possible en Javscript mais il faut encore savoir comment si prendre car entre la theorie et la pratique il ya une grande difference.

                          • [^] # Re: Tu y es presque je crois

                            Posté par  (site web personnel) . Évalué à 1.

                            Ta réponse n'est pas assez précise. Existe-il déjà est une page ou pas ? Est-elle statique ou pas ?

                            Regarde la page perso de mon profil tu y trouvera mon email. Ce sera plus simple et rapide pour discuter.

                            SA

                          • [^] # Re: Tu y es presque je crois

                            Posté par  . Évalué à 2.

                            Je ne comprend pas trop ton problème. avec ton deuxième script perl tu es capable d'écrire dans un fichier texte quelque chose comme:

                            Nombre de paramètres comparés = 7
                            Nombre actuel de systèmes = 56
                            Date = 20150617 13:00:13

                            pourquoi ne pourrais-tu écrire (en modifiant ce script) dans un autre fichier texte (appelons-le "resultat.html" par ex) quelque chose comme:

                            <html>
                            ...
                            <p>Nombre de paramètres comparés = 7</p>
                            <p>Nombre actuel de systèmes = 56</p>
                            <p>Date = 20150617 13:00:13</p>
                            ...
                            </html>
                            
                            • [^] # Re: Tu y es presque je crois

                              Posté par  (site web personnel) . Évalué à 1.

                              Il se focalise sur le problème de la mise à jour et ne vois pas l'évidence ?

                              SA

                            • [^] # Re: Tu y es presque je crois

                              Posté par  . Évalué à -2.

                              Salut Tit,
                              si j'ecris de la sorte cela veut dire que c'est statique par contre les valeurs peuvent changer a savoir le nombre de parametres, le nombre de systeme et ainsi que la date.
                              donc je pense que tu te trompe.

                              • [^] # Commentaire supprimé

                                Posté par  (site web personnel) . Évalué à 1. Dernière modification le 23 juin 2015 à 10:25.

                                Ce commentaire a été supprimé par l’équipe de modération.

                              • [^] # Re: Tu y es presque je crois

                                Posté par  (site web personnel) . Évalué à 1. Dernière modification le 23 juin 2015 à 10:25.

                                Ce qu'il dit est juste au moins pour le code :

                                <html>
                                ...
                                <p>Nombre de paramètres comparés = 7</p>
                                <p>Nombre actuel de systèmes = 56</p>
                                <p>Date = 20150617 13:00:13</p>
                                ...
                                </html>

                                La page est statique, donc elle existe et n'a pas été créée pour la circonstance, je présume, et il faut conserver d'autres données dessus. J'ai bon ou pas ?

                                Parce que s'il ne doit y avoir que tes résultats avec de la déco, la méthode de Tit est très bien.

                                Écris moi par email pour accélérer les choses parce que ça fait 6 jours que tu tourne autour du pot, et tu répond à côté presque à chaque fois.

                                SA

                              • [^] # Re: Tu y es presque je crois

                                Posté par  . Évalué à 1. Dernière modification le 23 juin 2015 à 16:40.

                                ???
                                Bien sûr que les valeurs peuvent changer! je n'ai pas imaginé que le script allait à chaque fois écrire 7 et 56 comme dans l'exemple.

                                Je reformule (en supposant que {v1} signifie "valeur de la variable v1"):

                                Tu es capable d'écrire dans un fichier texte quelque chose comme:

                                Nombre de paramètres comparés = {v1}
                                Nombre actuel de systèmes = {v2}
                                Date = {v3}

                                pourquoi ne pourrais-tu écrire (en modifiant ce script) dans un autre fichier texte (appelons-le "resultat.html" par ex) quelque chose comme:

                                <html>
                                   ...
                                    <p>Nombre de paramètres comparés = {v1}</p>
                                    <p>Nombre actuel de systèmes = {v2}</p>
                                    <p>Date = {v3}</p>
                                   ...
                                 </html>
                                

                                Dis-autrement:
                                demande-toi: qu'y a t-il à modifier ou ajouter dans le fichier texte que tu obtiens actuellement grâce à ton deuxième script perl par rapport à la page web que tu souhaites?
                                Entre autres des balises html comme dans l'exemple ci-dessus.

  • # solution deja evoqué dans le post precedent

    Posté par  . Évalué à 2.

    ton script ecrit actuellement les resultats dans un fichier texte à plat, sans formatage.

    ajoute des lignes à ton script pour directement ecrire le fichier html.

    en gros, il faut dire à ton script :
    - d'ouvrir un nouveau fichier resultat (par exemple : fopen ($htmlfile,"resultat.html") )
    - de faire les print d'affichage des chaines avec du code html dedans.

    ainsi le printf($resultat,"la chaine $info sans formatage donc en texte pure");
    se complete avec un printf($htmlfile,"<b>la chaine $info</b> avec du code <i>html</i> dedans");

    • [^] # Re: solution deja evoqué dans le post precedent

      Posté par  . Évalué à -2.

      Merci Neox,
      j'ai tout compri d'un coup grace a une courte explication, ca m'aura couter plus de 2 semaine alors que la reponse etait, tres simple et face a mes yeux.
      Grand merci Neox

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.