Valid XHTML     Valid CSS2    

Listing du fichier chanteurs.php avec syntaxhighlighter


        <?php
        
        #    (gH)   -_-  chanteurs.php  ;  TimeStamp (unix) : 16 Mars 2013 vers 22:58
        
        include("../std.php") ;
        debutPage("Popularité des chanteurs","strict") ;
        h1("Popularité des chanteurs selon Google") ;
        h2("(en principe, il faut patienter au plus 20 secondes)") ;
        p() ; nbsp() ; finp() ;
        flush() ;
        blockquote() ;
        debutSection() ;
        
        ##############################################################
        ##############################################################
        #                                                            #
        # Fonctions pour l'execice                                   #
        #                                                            #
        ##############################################################
        ##############################################################
        
        function urlgoog($expac) {
          # url pour demander à google de rechercher $expac
          return("http://www.google.fr/search?q=".rawurlencode($expac)."&amp;start=0") ;
        } ; # fin fonCtion urlgoog
        
        ##############################################################
        #                                                            #
        # la fonction qui suit a été écrite par un élève et utilise  #
        # le parcours du fichier lié à l'URL et des fonctions        #
        # classiques de chaines de caractères ; il vaut mieux        #
        # utiliser des fonctions plus "aggressives" et des           #
        # expressions régulières, mais nous laissons cette fonction  #
        # pour l'exemple.                                            #
        #                                                            #
        ##############################################################
        
        function nbhits_non($expac) {
        
           ## exemple de code renvoyé par Google en 2010 :
           ##     sur un total d'environ <b>11</b> pour <b>tuteur perl</b>.
           ## exemple de code renvoyé par Google en 2014 :
           ##   <div id=resultStats>Environ 6&#160;840&#160;000 résultats<nobr>
        
           # on construit l'URL
        
           $url  = urlgoog("$expac") ;
           $fp   = fopen($url,"r") ;
        
           # il faut peut etre passer par le proxy
        
           if (!$fp) { # il faut peut etre passer par le proxy
             $fp = fsockopen("iproxy.info-ua","3128") ;
             fputs($fp,"GET $url HTTP/1.0\n\n");
           } ; # fin de si
        
           # on lit la page renvoyée par Google comme un fichier
           # le texte recherché ressemble à : sur un total d'environ <b>11</b> pour <b>tuteur perl</b>.
        
           $nbhi = 0 ;
           while ((!feof($fp) and ($nbhi==0))) {
                  $lig = fgets($fp, 4096) ;
        # print '<pre><pre>'.preg_replace("/</","&lt;",$lig).'</pre>' ;  # à détailler en cours pour debug
        flush() ;
                  $chav = "Environ" ;
                  $lhav = strlen($chav) ;
                  $idpd = strpos($lig,$chav) ;
                  if ($idpd>0) {
                     $extr = substr($lig,$idpd+$lhav,50) ;
                     $extr = strip_tags($extr) ;
                     $chap = "r" ; # le r de résultats
                     $idpf = strpos($extr,$chap) ;
                     $nbhi = $extr ;
                     if ($idpf>0) {
                        $nbhi = substr($extr,0,$idpf) ;
                     } ; # fin si
                     # il peut arriver qu'on ait beaucoup de résultats, comme 22 900
                     # stocké comme 22&nbsp;900
                     # et il faut l'écrire "à la française"
                  } ; # fin si sur idpd
           } ; # fin de tant que
           fclose($fp) ;
        
           # un peu de ménage
        
           $nbhi = preg_replace("/\s+/","",$nbhi) ;
           $nbhi = preg_replace("/&#160;/","",$nbhi) ;
        
           return $nbhi ;
        } ; # fin de fonction nbhits_non
        
        ##############################################################
        #                                                            #
        # l'anayse des pages renvoyées par Google montre qu'il n'est #
        # pas trop pénalisant de lire toute la page plutot que de    #
        # ne lire que jusqu'au texte recherché.                      #
        #                                                            #
        ##############################################################
        
        
        function nbhits($expac) {
        
           ## exemple de code renvoyé par Google : <div id=resultStats>Environ 6&#160;840&#160;000 résultats<nobr>
        
           # on construit l'URL
        
           $url  = urlgoog("$expac") ;
           $fp   = file_get_contents($url) ;
        
           # on lit la page renvoyée par Google comme un fichier
           # le texte recherché ressemble à : Environ 11 résultats
        
           ## $nbhi = strlen($fp) ; # pour débug et vérification
        #pre("cadre") ;
        #echo htmlentities($fp) ;
        #finpre() ;
        #exit() ;
        
           $nbhi = 0 ;
           if( preg_match("/Environ(.*?)r/",$fp,$nbres)) { # le r de résultats !
        
              $nbhi = $nbres[1] ;
        
              # un peu de ménage
        
              $nbhi = preg_replace("/\s+/",   "",$nbhi) ;
              $nbhi = preg_replace("/&#160;/","",$nbhi) ;
              $nbhi = preg_replace("/&nbsp;/","",$nbhi) ;
        
           } ; # fin si
        
           return $nbhi ;
        
        } ; # fin de fonction nbhits
        
        ##############################################################
        
        echo "\n\n\n" ;
        table(0,'20',"",'courant') ;
        tr() ;
        td() ;
        
        /***************************************************/
        /*                                                 */
        /* mettez ici la liste que vous voulez             */
        /*                                                 */
        /***************************************************/
        
        
        $mots  = "Zazie Madonna Gaga Maroon%205 Dion Garou Bowie" ;
        $mots  = "Louane Madonna Gaga Dion Garou Bowie Beatles" ;
        $mots  = "Gaga" ;
        
        
        $tmots = preg_split("/\s+/",$mots) ;
        $nbm   = count($tmots) ;
        $data  = "" ;
        $xlab  = "" ;
        $idm   = 0 ;
        
        
        table(1,5,"collapse") ;
        tr() ;
        
        # les chiffres
        
        td() ; nbsp(3) ;
        echo s_span("Artiste","bleuf") ;
        nbsp(3) ; fintd() ;
        td() ; nbsp(3) ;
        echo s_span("Pages (millions)","bleuf") ;
        nbsp(3) ; fintd() ;
        fintr() ;
        foreach ($tmots as $mot) {
             $idm++ ;
             $nbp = nbhits($mot) ;
             $mdp = ($nbp/1000.0)/1000.0 ;
             $xlab .= $mot ;
             $data .= round($mdp) ;
             if ($idm<$nbm) {
                 $xlab .= "_" ;
                 $data .= "_" ;
             } ; # fin si
             tr() ;
             td() ; nbsp(7) ; echo urldecode($mot)  ;  nbsp(3) ; fintd() ;
             td("r") ; nbsp(3) ; echo sprintf("%8.1f",$mdp)  ;  nbsp(3) ; fintd() ;
             fintr() ;
        } ; # fin pour chaque
        fintable() ;
        fintd() ;
        
        # un peu d'espace
        
        td() ;
          pvide() ;
        fintd() ;
        
        
        # l'histogramme
        
        td() ;
        $an     = date("Y") ;
        $deburl = "http://forge.info.univ-angers.fr/~gh/jphistopct.php" ;
        $finurl = "vdata=$data&amp;titr=".urlencode("Hits pour $an")."&amp;xmrks=$xlab" ;
        ## echo " pour histogramme : <pre>$finurl</pre>\n" ;
        echo img("$deburl?taily=280&amp;$finurl",'histogramme') ;
        
        fintd() ;
        
        fintr() ;
        fintable() ;
        
        ###########################################################
        
        p() ;
        echo href("montresource.php?nomfic=chanteurs.php","Code-source php de cette page","orange_stim nou").". " ;
        finp() ;
        
        
        ###########################################################
        ###########################################################
        finSection() ;
        finblockquote() ;
        finPage() ;
        ?>
        

La coloration syntaxique est réalisée par : SyntaxHighlighter.

Si vous préférez, vous pouvez utiliser celle de geshi ou même celle construite autour de la fonction highlight_file.

 

 

retour gH    Retour à la page principale de   (gH)