Listing du fichier alldsc.php
00001 <?php
00002 # (gH) -_- alldsc.php ; TimeStamp (unix) : 20 Janvier 2010 vers 12:33
00003
00004 # +-----------------------------------------------------+
00005 # + +
00006 # + ATTENTION : ce programme s'exécute en ligne +
00007 # + de commandes et pas sur le Web ! +
00008 # + +
00009 # +-----------------------------------------------------+
00010
00011 $vgh = 1.23 ;
00012
00013 # -----------------------------------------------------
00014
00015 function aide() {
00016 echo "\n Paramètre obligatoire : R (Rtf/Word) ou C (Csv/Excel).\n\n" ;
00017 } # fin fonction aide() ;
00018
00019 # -----------------------------------------------------
00020 # détection du paramètre
00021
00022 $param = strtoupper($argv[1]) ;
00023
00024 if ($param == "") {
00025 aide() ;
00026 echo "\n Rappel : ce programme n'est pas prévu pour une utilisation " ;
00027 echo " dans une page Web.\n\n" ;
00028 exit(-1) ;
00029 } ; # fin de si
00030
00031 echo "\n\n alldsc.php : listage de tous les fichiers .dsc du répertoire courant, version $vgh\n\n" ;
00032
00033 $ok = 0 ;
00034 if ($param=="R"){ $ok = 1 ; } ;
00035 if ($param=="C"){ $ok = 1 ; } ;
00036 if ($ok==0) {
00037 aide() ;
00038 exit(-1) ;
00039 } ; # fin si
00040
00041 # lecture du répertoire et filtrage des .dsc
00042
00043 ## echo " paramètre : $param \n" ;
00044
00045 $lstdsc = array() ; # tableau des noms de fichier
00046 $nbf = 0 ; # nombre de fchiers dans le répertoire
00047 $nbFic = 0 ; # nombre de fchiers de type dsc dans le répertoire
00048
00049 $d = dir(".") ;
00050 while ($entry=$d->read()) {
00051 $nbf = $nbf +1 ;
00052 ## echo "$entry\n" ;
00053 $lng = strlen($entry) ;
00054 if ($lng>3) {
00055 $ext = strtoupper( substr($entry,$lng-3,3) ) ;
00056 ## echo " ==> $ext\n" ;
00057 if ($ext=="DSC") {
00058 $nbFic++ ;
00059 $lstdsc[$nbFic] = $entry ;
00060 } ; # fin de si sur ext
00061 } ; # fin de si sur lng
00062 } ; # fin tant que
00063 $d->close() ;
00064 $nbf -= 2 ; # à cause de . et ..
00065 echo " $nbf fichiers vus dont $nbFic de type dsc \n" ;
00066
00067 # pour un affichage 'à la française' sans passer par les "LOCALE"
00068
00069 $lstmois = array(
00070 "Jan"=>"Janvier",
00071 "Feb"=>"Février",
00072 "Mar"=>"Mars",
00073 "Apr"=>"Avril",
00074 "May"=>"Mai",
00075 "Jun"=>"Juin",
00076 "Jul"=>"Juillet",
00077 "Aug"=>"Août",
00078 "Sep"=>"Septembre",
00079 "Oct"=>"Octobre",
00080 "Nov"=>"Novembre",
00081 "Dec"=>"Décembre"
00082 ) ;
00083
00084 # récupération de la date du fichier
00085
00086 sort($lstdsc) ;
00087
00088 $idf = 0 ; # indice courant pour numéro de fichier
00089 foreach ($lstdsc as $fic) {
00090 $idf++ ;
00091 $taille = filesize($fic) ;
00092 $datef = fileatime($fic) ;
00093 $jourf = date("d",$datef) ;
00094 $moisf = $lstmois[date("M",$datef)] ;
00095 $anf = date("Y",$datef) ;
00096 $ls = "" ;
00097 $ls .= sprintf("%3d. ",$idf) ;
00098 $ls .= sprintf("%-20s",$fic) ;
00099 $ls .= sprintf("%6d" ,$taille) ;
00100 $ls .= sprintf(" %3d ",$jourf) ;
00101 $ls .= sprintf("%-10s",$moisf) ;
00102 $ls .= sprintf("%5d" ,$anf) ;
00103 echo "$ls\n" ;
00104 } ; # fin pour chaque
00105
00106
00107 if ($param=="R") {
00108
00109 $nfs = "alldsc.rtf" ;
00110 $fs = fopen($nfs,"w") or die("impossible d'écrire dans $nfs\n\n") ;
00111 # cette façon d'écrire est peu esthétique, mais fonctionnelle
00112 fputs($fs,'{\rtf1
00113 {\fonttbl
00114 {\f0\fswiss Arial;}
00115 {\f1\fmodern Courier New;}
00116 }
00117 {\stylesheet
00118 {\s0 Nom de liste;}
00119 {\s1 Description de fichier;}
00120 }
00121 \pard\plain\lang1036'."\n") ;
00122
00123 fputs($fs,'\par\s0\f0\fs28{\b Liste alphabétique des fichiers}'."\n") ;
00124
00125 $idf = 0 ; # indice courant pour numéro de fichier
00126
00127 foreach ($lstdsc as $fic) {
00128
00129 $idf++ ;
00130 $taille = filesize($fic) ;
00131 $datef = fileatime($fic) ;
00132 $jourf = date("d",$datef) ;
00133 $moisf = $lstmois[date("M",$datef)] ;
00134 $anf = date("Y",$datef) ;
00135
00136 $ls = '\par\s1\f1\fs22{' ;
00137 $ls .= sprintf("F%03d. ",$idf) ;
00138 $ls .= sprintf("%-20s",$fic) ;
00139 $ls .= sprintf("%6d" ,$taille) ;
00140 $ls .= sprintf(" %3d ",$jourf) ;
00141 $ls .= sprintf("%-10s",$moisf) ;
00142 $ls .= sprintf("%5d" ,$anf) ;
00143 $ls .= "}" ;
00144
00145 fputs($fs,"$ls\n") ;
00146
00147 } ; # fin pour chaque
00148
00149 fputs($fs,'{\par }'."\n".'}'."\n") ;
00150 fclose($fs) ;
00151 echo "Vous pouvez consulter $nfs\n\n" ;
00152 } ; # fin de si
00153
00154 if ($param=="C") {
00155
00156 $nfs = "alldsc.csv" ;
00157 $fs = fopen($nfs,"w") or die("impossible d'écrire dans $nfs\n\n") ;
00158 fputs($fs,"NUMERO ; NOM ; TAILLE ; JOUR ; MOIS ; AN \n") ;
00159 $idf = 0 ; # indice courant pour numéro de fichier
00160
00161 foreach ($lstdsc as $fic) {
00162
00163 $idf++ ;
00164 $taille = filesize($fic) ;
00165 $datef = fileatime($fic) ;
00166 $jourf = date("d",$datef) ;
00167 $moisf = $lstmois[date("M",$datef)] ;
00168 $anf = date("Y",$datef) ;
00169
00170 $ls = "" ;
00171 $ls .= sprintf("F%03d. ",$idf) ;
00172 $ls .= ";".sprintf("%-20s",$fic) ;
00173 $ls .= ";".sprintf("%6d" ,$taille) ;
00174 $ls .= ";".sprintf(" %3d ",$jourf) ;
00175 $ls .= ";".sprintf("%-10s",$moisf) ;
00176 $ls .= ";".sprintf("%5d" ,$anf) ;
00177
00178 fputs($fs,"$ls\n") ;
00179
00180 } ; # fin pour chaque
00181
00182 fclose($fs) ;
00183 echo "Vous pouvez consulter $nfs\n\n" ;
00184 } ; # fin de si
00185
00186 ?>
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 à la page principale de (gH)