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)."&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 840 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("/</","<",$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 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("/ /","",$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 840 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("/ /","",$nbhi) ; $nbhi = preg_replace("/ /","",$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&titr=".urlencode("Hits pour $an")."&xmrks=$xlab" ; ## echo " pour histogramme : <pre>$finurl</pre>\n" ; echo img("$deburl?taily=280&$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 à la page principale de (gH)