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