Valid XHTML     Valid CSS2    

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 
;
00034     if ($param
=="R"){ $ok ; } ;
00035     if ($param
=="C"){ $ok ; } ;
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 +;
00052         ## echo "$entry\n" ;
00053         $lng 
strlen($entry) ;
00054         if ($lng
>3) {
00055           $ext 
strtouppersubstr($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 
-= # à 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 
# 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 
# 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 
# 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 gH    Retour à la page principale de   (gH)