Valid XHTML     Valid CSS2    

Listing du fichier l2aprog11.php avec syntaxhighlighter


        <?php
        
        #    (gH)   -_-  l2aprog04.php  ;  TimeStamp (unix) : 07 Mars 2013 vers 17:58
        
        error_reporting(E_ALL | E_NOTICE | E_STRICT ) ;
        
        ###########################################################################
        #                                                                         #
        # exemple de programme php pour le cours Développement Web Avancé en L2   #
        #                                                                         #
        ###########################################################################
        #                                                                         #
        #                                                                         #
        #     Gestion de ficher-Excel fourni par formulaire                       #
        #                                                                         #
        #                                                                         #
        ###########################################################################
        
        # lecture d'un fichier Excel à l'aide de excel_reader2_ghv3.php
        # adapté du Google-code :
        #
        #   http://code.google.com/p/php-excel-reader/
        #
        # Voir http://forge.info.univ-angers.fr/~gh/Idas/Ccd/mcps/
        # comme exemple d'utilisation
        
          $dbgLecXls = 0 ; # 0 en normal, 1 pour debug
          if ($dbgLec == 1) {  $dbgLecXls = 1 ; } ;
          $errXls = 0 ;
        
          $tmpfile  = tempnam("/tmp","mcpsdata") ;
        
          # il faut vérifier que le fichier existe,
          # que c'est un document XLS avec les bonnes infos
        
          $xlsfile  = $_FILES["dataxls"]["tmp_name"] ;
        
          if ($dbgLecXls == 1) {
             pre() ;
              echo " xls : $xlsfile \n" ;
          } ; # fin si
        
          if (file_exists($xlsfile)) {
              #$contenuXML = file_get_contents($xmlfile) ;
              # echo htmlentities($contenuXML) ;
              if ($dbgLecXls == 1) {
                 echo " vu !\n" ;
              } ; # fin si
          } else {
              if ($dbgLecXls == 1) {
                 echo " pas vu \n" ;
              } ; # fin si
              $errXls++ ;
          } ; # fin si
        
          if ($dbgLecXls == 1) {
             finpre() ;
          } ; # fin si
        
          if ($errXls>0) {
            return(array($xmlfile,$nbg,$nbe,$nbc,$tGrp,$tCol,$tLig,$g2Gname,$c2Cname)) ;
          } ; # finsi
        
          try {
            $mcpsXls = new Spreadsheet_Excel_Reader($xlsfile) ;
          } catch (Exception $err) {
          } # fin de cath
        
          # mode DDEBUG :
          # pre() ;
          #   print_r($mcpsXls) ;
          # finpre() ;
        
          $nfData  = getSheetIndex($mcpsXls,"Data")  ;
          if (($nfData<0) or (strlen(trim($nfData))==0)) {
            $errXls++ ;
            if ($lng=="fr") {
               h2("Feuille/Onglet nommée \"Data\" non vu dans votre fichier Excel.","grouge") ;
            } else {
               h2("Sheet named \"Data\" not found in your Excel file.","grouge") ;
            } ; # finsi
          } else {
            if ($dbgLecXls == 1) {
              h2("Feuille/Onglet \"Data\" vu en position $nfData","gvert") ;
            } ; # fin si
          } ; # fin si
        
          $nfGroup   = "" ;
          $nfGroup1  = getSheetIndex($mcpsXls,"Groups")  ;
          $nfGroup2  = getSheetIndex($mcpsXls,"Groupes")  ;
          if ($nfGroup1) { $nfGroup = $nfGroup1 ; } ;
          if ($nfGroup2) { $nfGroup = $nfGroup2 ; } ;
        
          if (($nfGroup<0) or (strlen(trim($nfGroup))==0)) {
            $errXls++ ;
            if ($lng=="fr") {
               h2("Feuille/Onglet nommée \"Groupes\" ou \"Groups\" non vu dans votre fichier Excel.","grouge") ;
            } else {
               h2("Sheet named \"Groupes\" ou \"Groups\" not found in your Excel file.","grouge") ;
            } ; # finsi
          } else {
            if ($dbgLecXls == 1) {
               h2("Feuille/Onglet \"Groupes\" ou \"Groups\" vu en position $nfGroup","gvert") ;
            } ; # fin si
          } ; # fin si
        
          if ($errXls>0) {
            return(array($xmlfile,$nbg,$nbe,$nbc,$tGrp,$tCol,$tLig,$g2Gname,$c2Cname)) ;
          } ; # finsi
        
          if ($dbgLecXls == 1) {
              pre("cadre") ;
              echo " == onglet Groupes index $nfGroup \n" ;
              print_r($mcpsXls -> boundsheets[$nfData]) ;
          } ; # fin si
        
              ## echo " clé $key valeur ".$item['name']." \n" ;
        
              $outs = array();
              $sheet = $nfGroup ;
              for($row=1; $row<=$mcpsXls->rowcount($sheet); $row++) {
                      $outs_inner = array();
                      for($col=1; $col<=$mcpsXls->colcount($sheet); $col++) {
                              // Account for Rowspans/Colspans
                              $rowspan = $mcpsXls->rowspan($row, $col, $sheet);
                              $colspan = $mcpsXls->colspan($row, $col, $sheet);
                              for($i=0; $i<$rowspan; $i++) {
                                      for($j=0; $j<$colspan; $j++) {
                                              $mcpsXls->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=0;
                                              if ($i>0 || $j>0) {
                                                      $mcpsXls->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=1;
                                              }
                                      }
                              } # fin pour chaque ligne
        
                              #if (isset($mcpsXls->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint'])) {
                              if (!$mcpsXls->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) {
                                      $val = $mcpsXls->val($row, $col, $sheet);
                                      $val = ($val=='')?'':addslashes(htmlentities($val));
        
                                      $outs_inner[] = "\"{$val}\""; # Quote or not?
        
                                      #$outs_inner[] = $val;
                              }
                              #}
                      } ; # fin pour chaque colonne
                      $outs[] = implode(',', $outs_inner);
              } ; # fin pour chaque ligne
              $out = implode("\r\n", $outs);
              # print_r($out) ;
              $outTab = preg_split("/\n/",$out) ;
              # print_r($outTab) ;
        
              $tGrp    = array() ;
              $g2Gname = array() ;
              $nbl = count($outTab) ;
              for ($idl=0;$idl<$nbl;$idl++) {
                # echo " ligne $idl \n" ;
                $ligTab = preg_split("/,/",$outTab[$idl]) ;
                $nbe = count($ligTab) ;
                $numG = trim(strtr($ligTab[0],'"',' ')) ;
                # echo " en position 0 on a $numG \n" ;
                if (is_numeric($numG)) {
                  $valGrp = "" ;
                  for ($ide=1;$ide<$nbe;$ide++) {
                     $eltG    = trim(strtr($ligTab[$ide],'"',' ')) ;
                     $eltG    = preg_replace("/\s+/","_",trim(strtr($ligTab[$ide],'"',' '))) ;
                     $valGrp .= trim(strtr($eltG,"\n"," "))." " ;
                  } ; # fin pour chaque élément dans la ligne
                  $nomGxls     = "g$numG" ;
                  $tGrp[$numG] = $nomGxls ;
                  $g2Gname[$nomGxls] = $valGrp ;
                } ; # fin si
              } ; # fin pour chaque ligne
              if ($dbgLecXls == 1) {
                 echo " -- tGrp est : \n" ;
                 print_r($tGrp) ;
              } ; # fin si
              $nbg = $numG ;
        
        ?>
        

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)