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
= 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     
?>

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)