Listing du fichier alldsc.php avec syntaxhighlighter
<?php # (gH) -_- alldsc.php ; TimeStamp (unix) : 20 Janvier 2010 vers 12:33 # +-----------------------------------------------------+ # + + # + ATTENTION : ce programme s'exécute en ligne + # + de commandes et pas sur le Web ! + # + + # +-----------------------------------------------------+ $vgh = 1.23 ; # ----------------------------------------------------- function aide() { echo "\n Paramètre obligatoire : R (Rtf/Word) ou C (Csv/Excel).\n\n" ; } # fin fonction aide() ; # ----------------------------------------------------- # détection du paramètre $param = strtoupper($argv[1]) ; if ($param == "") { aide() ; echo "\n Rappel : ce programme n'est pas prévu pour une utilisation " ; echo " dans une page Web.\n\n" ; exit(-1) ; } ; # fin de si echo "\n\n alldsc.php : listage de tous les fichiers .dsc du répertoire courant, version $vgh\n\n" ; $ok = 0 ; if ($param=="R"){ $ok = 1 ; } ; if ($param=="C"){ $ok = 1 ; } ; if ($ok==0) { aide() ; exit(-1) ; } ; # fin si # lecture du répertoire et filtrage des .dsc ## echo " paramètre : $param \n" ; $lstdsc = array() ; # tableau des noms de fichier $nbf = 0 ; # nombre de fchiers dans le répertoire $nbFic = 0 ; # nombre de fchiers de type dsc dans le répertoire $d = dir(".") ; while ($entry=$d->read()) { $nbf = $nbf +1 ; ## echo "$entry\n" ; $lng = strlen($entry) ; if ($lng>3) { $ext = strtoupper( substr($entry,$lng-3,3) ) ; ## echo " ==> $ext\n" ; if ($ext=="DSC") { $nbFic++ ; $lstdsc[$nbFic] = $entry ; } ; # fin de si sur ext } ; # fin de si sur lng } ; # fin tant que $d->close() ; $nbf -= 2 ; # à cause de . et .. echo " $nbf fichiers vus dont $nbFic de type dsc \n" ; # pour un affichage 'à la française' sans passer par les "LOCALE" $lstmois = array( "Jan"=>"Janvier", "Feb"=>"Février", "Mar"=>"Mars", "Apr"=>"Avril", "May"=>"Mai", "Jun"=>"Juin", "Jul"=>"Juillet", "Aug"=>"Août", "Sep"=>"Septembre", "Oct"=>"Octobre", "Nov"=>"Novembre", "Dec"=>"Décembre" ) ; # récupération de la date du fichier sort($lstdsc) ; $idf = 0 ; # indice courant pour numéro de fichier foreach ($lstdsc as $fic) { $idf++ ; $taille = filesize($fic) ; $datef = fileatime($fic) ; $jourf = date("d",$datef) ; $moisf = $lstmois[date("M",$datef)] ; $anf = date("Y",$datef) ; $ls = "" ; $ls .= sprintf("%3d. ",$idf) ; $ls .= sprintf("%-20s",$fic) ; $ls .= sprintf("%6d" ,$taille) ; $ls .= sprintf(" %3d ",$jourf) ; $ls .= sprintf("%-10s",$moisf) ; $ls .= sprintf("%5d" ,$anf) ; echo "$ls\n" ; } ; # fin pour chaque if ($param=="R") { $nfs = "alldsc.rtf" ; $fs = fopen($nfs,"w") or die("impossible d'écrire dans $nfs\n\n") ; # cette façon d'écrire est peu esthétique, mais fonctionnelle fputs($fs,'{\rtf1 {\fonttbl {\f0\fswiss Arial;} {\f1\fmodern Courier New;} } {\stylesheet {\s0 Nom de liste;} {\s1 Description de fichier;} } \pard\plain\lang1036'."\n") ; fputs($fs,'\par\s0\f0\fs28{\b Liste alphabétique des fichiers}'."\n") ; $idf = 0 ; # indice courant pour numéro de fichier foreach ($lstdsc as $fic) { $idf++ ; $taille = filesize($fic) ; $datef = fileatime($fic) ; $jourf = date("d",$datef) ; $moisf = $lstmois[date("M",$datef)] ; $anf = date("Y",$datef) ; $ls = '\par\s1\f1\fs22{' ; $ls .= sprintf("F%03d. ",$idf) ; $ls .= sprintf("%-20s",$fic) ; $ls .= sprintf("%6d" ,$taille) ; $ls .= sprintf(" %3d ",$jourf) ; $ls .= sprintf("%-10s",$moisf) ; $ls .= sprintf("%5d" ,$anf) ; $ls .= "}" ; fputs($fs,"$ls\n") ; } ; # fin pour chaque fputs($fs,'{\par }'."\n".'}'."\n") ; fclose($fs) ; echo "Vous pouvez consulter $nfs\n\n" ; } ; # fin de si if ($param=="C") { $nfs = "alldsc.csv" ; $fs = fopen($nfs,"w") or die("impossible d'écrire dans $nfs\n\n") ; fputs($fs,"NUMERO ; NOM ; TAILLE ; JOUR ; MOIS ; AN \n") ; $idf = 0 ; # indice courant pour numéro de fichier foreach ($lstdsc as $fic) { $idf++ ; $taille = filesize($fic) ; $datef = fileatime($fic) ; $jourf = date("d",$datef) ; $moisf = $lstmois[date("M",$datef)] ; $anf = date("Y",$datef) ; $ls = "" ; $ls .= sprintf("F%03d. ",$idf) ; $ls .= ";".sprintf("%-20s",$fic) ; $ls .= ";".sprintf("%6d" ,$taille) ; $ls .= ";".sprintf(" %3d ",$jourf) ; $ls .= ";".sprintf("%-10s",$moisf) ; $ls .= ";".sprintf("%5d" ,$anf) ; fputs($fs,"$ls\n") ; } ; # fin pour chaque fclose($fs) ; echo "Vous pouvez consulter $nfs\n\n" ; } ; # fin de si ?>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)