Valid XHTML     Valid CSS2    

Listing du fichier emarge_rtf.php

 

00001     <?php
00002     
00003     
# liste d'émargement RTF (Word) à partir d'un fichier texte
00004     # au format prénom(s) ; nom(s)
00005     
00006     # aide éventuelle
00007     
00008     
if (!isset($argv[1])) {
00009     
00010      echo
"Syntaxe : php emarge_rtf.php FICHIER \n\n" ;
00011      echo
"Pour plus de détails sur le format du fichier d'entrée, consulter :\n\n" ;
00012      echo
" http://forge.info.univ-angers.fr/~gh/Pagsd/pagsd3.php?solutions=1#tdm3\n" ;
00013      echo
"\n" ;
00014      exit(-
1) ;
00015     
00016     } ;
# fin si
00017     
00018     # vérification de l'existence du fichier
00019     
00020     
$ficEnt
= $argv[1] ;
00021     
$ficSor
= "emarge_php.rtf" ;
00022     
00023     if (!
file_exists
($ficEnt)) {
00024     
00025      echo
"\n" ;
00026      echo
"Fichier
$ficEnt non vu. STOP.\n" ;
00027      echo
"\n" ;
00028      exit(-
2) ;
00029     
00030     }
# fin si
00031     
00032     # traitement du fichier ligne par ligne
00033     
00034     
echo
"\n" ;
00035     echo
"Composition de la feuille d'émargement
$ficSor à partir du fichier d'entrée $ficEnt\n" ;
00036     echo
"\n" ;
00037     
00038     
$fhIn
= fopen($ficEnt,"r") ;
00039     
$fhOut
= fopen($ficSor,"w") ;
00040     
00041     
# on commence par écrire l'entete RTF
00042     
00043     
fputs
($fhOut, file_get_contents("debut_emarge.rtf")) ;
00044     
00045     
# pour chaque personne, on écrit dans le tableau
00046     # à partir du modèle dans milieu_emarge.rtf
00047     
00048     
$milieu
= file_get_contents("milieu_emarge.rtf") ;
00049     
$num
= 0 ;
00050     
00051     while (
$ligEnt
=fgets($fhIn,4096)) {
00052     
00053     
# on ignore les commentaires et les lignes vides
00054     
$ligEnt
= trim($ligEnt) ;
00055      if (
strlen
($ligEnt)>0) {
00056      if (
substr
($ligEnt,0,1) != "#") {
00057     
$num++ ;
00058     
$ligSor
= $milieu ;
00059     
# on extrait nom et prénom
00060     
$tabInfo
= preg_split("/;/",$ligEnt) ;
00061     
# conversion du nom en majuscules
00062     
$tabInfo
[1] = strtoupper($tabInfo[1]) ;
00063     
# on remplace NUM NOM et PRENOM par les bonnes valeurs
00064     
$ligSor
= preg_replace("/NUM/",$num,$ligSor) ;
00065     
$ligSor
= preg_replace("/PRENOM/",$tabInfo[0],$ligSor) ;
00066     
$ligSor
= preg_replace("/NOM/",$tabInfo[1],$ligSor) ;
00067     
# on écrit les lignes dans le fichier de sortie
00068     
fputs
($fhOut,$ligSor) ;
00069      } ;
# fin si sur commentaire
00070     
} ; # fin si sur ligne vide
00071     
00072     
} ; # fin tant que
00073     
00074     # on finit par la "queue" de fichier RTF
00075     
00076     
fputs
($fhOut, file_get_contents("fin_emarge.rtf")) ;
00077     
00078     
fclose
($fhIn) ;
00079     
fclose
($fhOut) ;
00080     
00081     echo
"Vous pouvez utiliser le fichier
$ficSor\n" ;
00082     echo
"\n" ;
00083     
00084     
?>

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)