Valid XHTML     Valid CSS2    

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 gH    Retour à la page principale de   (gH)