Valid XHTML     Valid CSS2    

Listing du fichier chanteurs.php

 

00001     <?php
00002     
00003     #    (gH)   -_-  chanteurs.php  ;  TimeStamp (unix) : 16 Mars 2013 vers 22:58
00004     
00005     include(
"../std.php") ;
00006     debutPage
("Popularité des chanteurs","strict") ;
00007     h1
("Popularité des chanteurs selon Google") ;
00008     h2
("(en principe, il faut patienter au plus 20 secondes)") ;
00009     p
() ; nbsp() ; finp() ;
00010     flush
() ;
00011     blockquote
() ;
00012     debutSection
() ;
00013     
00014     ##############################################################
00015     ##############################################################
00016     #                                                            #
00017     # Fonctions pour l'execice                                   #
00018     #                                                            #
00019     ##############################################################
00020     ##############################################################
00021     
00022     function 
urlgoog($expac) {
00023       # url pour demander à google de rechercher $expac
00024       return(
"http://www.google.fr/search?q=".rawurlencode($expac)."&amp;start=0") ;
00025     } ; # fin fonCtion urlgoog
00026     
00027     ##############################################################
00028     #                                                            #
00029     # la fonction qui suit a été écrite par un élève et utilise  #
00030     # le parcours du fichier lié à l'URL et des fonctions        #
00031     # classiques de chaines de caractères ; il vaut mieux        #
00032     # utiliser des fonctions plus "aggressives" et des           #
00033     # expressions régulières, mais nous laissons cette fonction  #
00034     # pour l'exemple.                                            #
00035     #                                                            #
00036     ##############################################################
00037     
00038     function 
nbhits_non($expac) {
00039     
00040        ## exemple de code renvoyé par Google en 2010 :
00041        ##     sur un total d'environ <b>11</b> pour <b>tuteur perl</b>.
00042        ## exemple de code renvoyé par Google en 2014 :
00043        ##   <div id=resultStats>Environ 6&#160;840&#160;000 résultats<nobr>
00044     
00045        # on construit l'URL
00046     
00047        $url  
urlgoog("$expac") ;
00048        $fp   
fopen($url,"r") ;
00049     
00050        # il faut peut etre passer par le proxy
00051     
00052        if (!
$fp) { # il faut peut etre passer par le proxy
00053          $fp 
fsockopen("iproxy.info-ua","3128") ;
00054          fputs
($fp,"GET $url HTTP/1.0\n\n");
00055        } ; # fin de si
00056     
00057        # on lit la page renvoyée par Google comme un fichier
00058        # le texte recherché ressemble à : sur un total d'environ <b>11</b> pour <b>tuteur perl</b>.
00059     
00060        $nbhi 
;
00061        while ((!feof
($fp) and ($nbhi==0))) {
00062               $lig 
fgets($fp4096) ;
00063     # print '<pre><pre>'.preg_replace("/</","&lt;",$lig).'</pre>' ;  # à détailler en cours pour debug
00064     flush
() ;
00065               $chav 
"Environ" ;
00066               $lhav 
strlen($chav) ;
00067               $idpd 
strpos($lig,$chav) ;
00068               if ($idpd
>0) {
00069                  $extr 
substr($lig,$idpd+$lhav,50) ;
00070                  $extr 
strip_tags($extr) ;
00071                  $chap 
"r" # le r de résultats
00072                  $idpf 
strpos($extr,$chap) ;
00073                  $nbhi 
$extr ;
00074                  if ($idpf
>0) {
00075                     $nbhi 
substr($extr,0,$idpf) ;
00076                  } ; # fin si
00077                  # il peut arriver qu'on ait beaucoup de résultats, comme 22 900
00078                  # stocké comme 22&nbsp;900
00079                  # et il faut l'écrire "à la française"
00080               } ; 
# fin si sur idpd
00081        } ; 
# fin de tant que
00082        fclose
($fp) ;
00083     
00084        # un peu de ménage
00085     
00086        $nbhi 
preg_replace("/\s+/","",$nbhi) ;
00087        $nbhi 
preg_replace("/&#160;/","",$nbhi) ;
00088     
00089        return $nbhi 
;
00090     } ; # fin de fonction nbhits_non
00091     
00092     ##############################################################
00093     #                                                            #
00094     # l'anayse des pages renvoyées par Google montre qu'il n'est #
00095     # pas trop pénalisant de lire toute la page plutot que de    #
00096     # ne lire que jusqu'au texte recherché.                      #
00097     #                                                            #
00098     ##############################################################
00099     
00100     
00101     function 
nbhits($expac) {
00102     
00103        ## exemple de code renvoyé par Google : <div id=resultStats>Environ 6&#160;840&#160;000 résultats<nobr>
00104     
00105        # on construit l'URL
00106     
00107        $url  
urlgoog("$expac") ;
00108        $fp   
file_get_contents($url) ;
00109     
00110        # on lit la page renvoyée par Google comme un fichier
00111        # le texte recherché ressemble à : Environ 11 résultats
00112     
00113        ## $nbhi = strlen($fp) ; # pour débug et vérification
00114     #pre("cadre") ;
00115     #echo htmlentities($fp) ;
00116     #finpre() ;
00117     #exit() ;
00118     
00119        $nbhi 
;
00120        if( preg_match
("/Environ(.*?)r/",$fp,$nbres)) { # le r de résultats !
00121     
00122           $nbhi 
$nbres[1] ;
00123     
00124           # un peu de ménage
00125     
00126           $nbhi 
preg_replace("/\s+/",   "",$nbhi) ;
00127           $nbhi 
preg_replace("/&#160;/","",$nbhi) ;
00128           $nbhi 
preg_replace("/&nbsp;/","",$nbhi) ;
00129     
00130        } ; # fin si
00131     
00132        return 
$nbhi ;
00133     
00134     } ; # fin de fonction nbhits
00135     
00136     ##############################################################
00137     
00138     echo 
"\n\n\n" ;
00139     table
(0,'20',"",'courant') ;
00140     tr
() ;
00141     td
() ;
00142     
00143     /***************************************************/
00144     /*                                                 */
00145     /* mettez ici la liste que vous voulez             */
00146     /*                                                 */
00147     /***************************************************/
00148     
00149     
00150     $mots  
"Zazie Madonna Gaga Maroon%205 Dion Garou Bowie" ;
00151     $mots  
"Louane Madonna Gaga Dion Garou Bowie Beatles" ;
00152     $mots  
"Gaga" ;
00153     
00154     
00155     $tmots 
preg_split("/\s+/",$mots) ;
00156     $nbm   
count($tmots) ;
00157     $data  
"" ;
00158     $xlab  
"" ;
00159     $idm   
;
00160     
00161     
00162     table
(1,5,"collapse") ;
00163     tr
() ;
00164     
00165     # les chiffres
00166     
00167     td
() ; nbsp(3) ;
00168     echo s_span
("Artiste","bleuf") ;
00169     nbsp
(3) ; fintd() ;
00170     td
() ; nbsp(3) ;
00171     echo s_span
("Pages (millions)","bleuf") ;
00172     nbsp
(3) ; fintd() ;
00173     fintr
() ;
00174     foreach ($tmots 
as $mot) {
00175          $idm
++ ;
00176          $nbp 
nbhits($mot) ;
00177          $mdp 
= ($nbp/1000.0)/1000.0 ;
00178          $xlab 
.= $mot ;
00179          $data 
.= round($mdp) ;
00180          if ($idm
<$nbm) {
00181              $xlab 
.= "_" ;
00182              $data 
.= "_" ;
00183          } ; # fin si
00184          tr
() ;
00185          td
() ; nbsp(7) ; echo urldecode($mot)  ;  nbsp(3) ; fintd() ;
00186          td
("r") ; nbsp(3) ; echo sprintf("%8.1f",$mdp)  ;  nbsp(3) ; fintd() ;
00187          fintr
() ;
00188     } ; # fin pour chaque
00189     fintable
() ;
00190     fintd
() ;
00191     
00192     # un peu d'espace
00193     
00194     td
() ;
00195       pvide
() ;
00196     fintd
() ;
00197     
00198     
00199     # l'histogramme
00200     
00201     td
() ;
00202     $an     
date("Y") ;
00203     $deburl 
"http://forge.info.univ-angers.fr/~gh/jphistopct.php" ;
00204     $finurl 
"vdata=$data&amp;titr=".urlencode("Hits pour $an")."&amp;xmrks=$xlab;
00205     ## echo " pour histogramme : <pre>$finurl</pre>\n" ;
00206     echo 
img("$deburl?taily=280&amp;$finurl",'histogramme') ;
00207     
00208     fintd
() ;
00209     
00210     fintr
() ;
00211     fintable
() ;
00212     
00213     ###########################################################
00214     
00215     p
() ;
00216     echo href
("montresource.php?nomfic=chanteurs.php","Code-source php de cette page","orange_stim nou").". " ;
00217     finp
() ;
00218     
00219     
00220     ###########################################################
00221     ###########################################################
00222     finSection
() ;
00223     finblockquote
() ;
00224     finPage
() ;
00225     ?>

La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file

mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)