Valid XHTML     Valid CSS2    

Listing du fichier l2aprog11.php

 

00001     <?php
00002     
00003     #    (gH)   -_-  l2aprog04.php  ;  TimeStamp (unix) : 07 Mars 2013 vers 17:58
00004     
00005     error_reporting
(E_ALL E_NOTICE E_STRICT ) ;
00006     
00007     ###########################################################################
00008     #                                                                         #
00009     # exemple de programme php pour le cours Développement Web Avancé en L2   #
00010     #                                                                         #
00011     ###########################################################################
00012     #                                                                         #
00013     #                                                                         #
00014     #     Gestion de ficher-Excel fourni par formulaire                       #
00015     #                                                                         #
00016     #                                                                         #
00017     ###########################################################################
00018     
00019     # lecture d'un fichier Excel à l'aide de excel_reader2_ghv3.php
00020     # adapté du Google-code :
00021     #
00022     #   http://code.google.com/p/php-excel-reader/
00023     #
00024     # Voir http://forge.info.univ-angers.fr/~gh/Idas/Ccd/mcps/
00025     # comme exemple d'utilisation
00026     
00027       $dbgLecXls 
# 0 en normal, 1 pour debug
00028       if (
$dbgLec == 1) {  $dbgLecXls ; } ;
00029       $errXls 
;
00030     
00031       $tmpfile  
tempnam("/tmp","mcpsdata") ;
00032     
00033       # il faut vérifier que le fichier existe,
00034       # que c'est un document XLS avec les bonnes infos
00035     
00036       $xlsfile  
$_FILES["dataxls"]["tmp_name"] ;
00037     
00038       if ($dbgLecXls 
== 1) {
00039          pre
() ;
00040           echo " xls : 
$xlsfile \n" ;
00041       } ; # fin si
00042     
00043       if (
file_exists($xlsfile)) {
00044           #$contenuXML = file_get_contents($xmlfile) ;
00045           # echo htmlentities($contenuXML) ;
00046           if (
$dbgLecXls == 1) {
00047              echo " vu !\n" 
;
00048           } ; # fin si
00049       } else {
00050           if ($dbgLecXls 
== 1) {
00051              echo " pas vu \n" 
;
00052           } ; # fin si
00053           $errXls
++ ;
00054       } ; # fin si
00055     
00056       if (
$dbgLecXls == 1) {
00057          finpre
() ;
00058       } ; # fin si
00059     
00060       if (
$errXls>0) {
00061         return(array($xmlfile
,$nbg,$nbe,$nbc,$tGrp,$tCol,$tLig,$g2Gname,$c2Cname)) ;
00062       } ; # finsi
00063     
00064       try {
00065         $mcpsXls 
= new Spreadsheet_Excel_Reader($xlsfile) ;
00066       } catch (Exception $err
) {
00067       } # fin de cath
00068     
00069       # mode DDEBUG :
00070       # pre() ;
00071       #   print_r($mcpsXls) ;
00072       # finpre() ;
00073     
00074       $nfData  
getSheetIndex($mcpsXls,"Data")  ;
00075       if (($nfData
<0) or (strlen(trim($nfData))==0)) {
00076         $errXls
++ ;
00077         if ($lng
=="fr") {
00078            h2
("Feuille/Onglet nommée \"Data\" non vu dans votre fichier Excel.","grouge") ;
00079         } else {
00080            h2
("Sheet named \"Data\" not found in your Excel file.","grouge") ;
00081         } ; # finsi
00082       } else {
00083         if ($dbgLecXls 
== 1) {
00084           h2
("Feuille/Onglet \"Data\" vu en position $nfData","gvert") ;
00085         } ; # fin si
00086       } ; 
# fin si
00087     
00088       $nfGroup   
"" ;
00089       $nfGroup1  
getSheetIndex($mcpsXls,"Groups")  ;
00090       $nfGroup2  
getSheetIndex($mcpsXls,"Groupes")  ;
00091       if ($nfGroup1
) { $nfGroup $nfGroup1 ; } ;
00092       if ($nfGroup2
) { $nfGroup $nfGroup2 ; } ;
00093     
00094       if (($nfGroup
<0) or (strlen(trim($nfGroup))==0)) {
00095         $errXls
++ ;
00096         if ($lng
=="fr") {
00097            h2
("Feuille/Onglet nommée \"Groupes\" ou \"Groups\" non vu dans votre fichier Excel.","grouge") ;
00098         } else {
00099            h2
("Sheet named \"Groupes\" ou \"Groups\" not found in your Excel file.","grouge") ;
00100         } ; # finsi
00101       } else {
00102         if ($dbgLecXls 
== 1) {
00103            h2
("Feuille/Onglet \"Groupes\" ou \"Groups\" vu en position $nfGroup","gvert") ;
00104         } ; # fin si
00105       } ; 
# fin si
00106     
00107       if (
$errXls>0) {
00108         return(array($xmlfile
,$nbg,$nbe,$nbc,$tGrp,$tCol,$tLig,$g2Gname,$c2Cname)) ;
00109       } ; # finsi
00110     
00111       if (
$dbgLecXls == 1) {
00112           pre
("cadre") ;
00113           echo " == onglet Groupes index 
$nfGroup \n" ;
00114           print_r
($mcpsXls -> boundsheets[$nfData]) ;
00115       } ; # fin si
00116     
00117           ## echo " clé $key valeur ".$item['name']." \n" ;
00118     
00119           $outs 
= array();
00120           $sheet 
$nfGroup ;
00121           for($row
=1$row<=$mcpsXls->rowcount($sheet); $row++) {
00122                   $outs_inner 
= array();
00123                   for($col
=1$col<=$mcpsXls->colcount($sheet); $col++) {
00124                           // Account for Rowspans/Colspans
00125                           $rowspan 
$mcpsXls->rowspan($row$col$sheet);
00126                           $colspan 
$mcpsXls->colspan($row$col$sheet);
00127                           for($i
=0$i<$rowspan$i++) {
00128                                   for($j
=0$j<$colspan$j++) {
00129                                           $mcpsXls
->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=0;
00130                                           if ($i
>|| $j>0) {
00131                                                   $mcpsXls
->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=1;
00132                                           }
00133                                   }
00134                           } # fin pour chaque ligne
00135     
00136                           #if (isset($mcpsXls->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint'])) {
00137                           if (!
$mcpsXls->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) {
00138                                   $val 
$mcpsXls->val($row$col$sheet);
00139                                   $val 
= ($val=='')?'':addslashes(htmlentities($val));
00140     
00141                                   $outs_inner
[] = "\"{$val}\""# Quote or not?
00142     
00143                                   #$outs_inner[] = $val;
00144                           }
00145                           #}
00146                   } ; 
# fin pour chaque colonne
00147                   $outs
[] = implode(','$outs_inner);
00148           } ; # fin pour chaque ligne
00149           $out 
implode("\r\n"$outs);
00150           # print_r($out) ;
00151           $outTab 
preg_split("/\n/",$out) ;
00152           # print_r($outTab) ;
00153     
00154           $tGrp    
= array() ;
00155           $g2Gname 
= array() ;
00156           $nbl 
count($outTab) ;
00157           for ($idl
=0;$idl<$nbl;$idl++) {
00158             # echo " ligne $idl \n" ;
00159             $ligTab 
preg_split("/,/",$outTab[$idl]) ;
00160             $nbe 
count($ligTab) ;
00161             $numG 
trim(strtr($ligTab[0],'"',' ')) ;
00162             # echo " en position 0 on a $numG \n" ;
00163             if (
is_numeric($numG)) {
00164               $valGrp 
"" ;
00165               for ($ide
=1;$ide<$nbe;$ide++) {
00166                  $eltG    
trim(strtr($ligTab[$ide],'"',' ')) ;
00167                  $eltG    
preg_replace("/\s+/","_",trim(strtr($ligTab[$ide],'"',' '))) ;
00168                  $valGrp 
.= trim(strtr($eltG,"\n"," "))." " ;
00169               } ; # fin pour chaque élément dans la ligne
00170               $nomGxls     
"g$numG;
00171               $tGrp
[$numG] = $nomGxls ;
00172               $g2Gname
[$nomGxls] = $valGrp ;
00173             } ; # fin si
00174           } ; 
# fin pour chaque ligne
00175           if (
$dbgLecXls == 1) {
00176              echo " -- tGrp est : \n" 
;
00177              print_r
($tGrp) ;
00178           } ; # fin si
00179           $nbg 
$numG ;
00180     
00181     ?>

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)