web-dev-qa-db-fra.com

Erreur fatale: «pause» pas dans le contexte «boucle» ou «commutateur» dans Function.php

J'essaie PHPExcel et j'obtiens une erreur de sortie lorsque j'exécute mon script:

Erreur fatale: "pause" pas dans le contexte "boucle" ou "commutateur" dans /opt/lampp/htdocs/Xlsphp/test/Classes/PHPExcel/Calculation/Functions.php sur la ligne 581

Je ne sais pas ce que je fais mal dans mon script PHP. Il semble que tout soit correct.

Quelqu'un sait-il comment le résoudre?

Voici mon PHP:

<?php
require_once 'Classes/PHPExcel.php';
require_once 'config.php';

$sql = 'SELECT * FROM tablevalues';
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$fileName = 'test.xls';

// initialise Excel column name
// currently limited to queries with less than 27 columns
$columnArray = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");

// Instantiate a new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set the active Excel worksheet to sheet 0
$objPHPExcel->setActiveSheetIndex(0);
// Initialise the Excel row number
$rowCount = 1;
// fetch result set column information
$finfo = mysqli_fetch_fields($result);
// initialise columnlenght counter
$columnlenght = 0;
foreach ($finfo as $val) {
    // set column header values
    $objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$columnlenght++] . $rowCount, $val->name);
}
// make the column headers bold
$objPHPExcel->getActiveSheet()->getStyle($columnArray[0]."1:".$columnArray[$columnlenght]."1")->getFont()->setBold(true);

$rowCount++;
// Iterate through each result from the SQL query in turn
// We fetch each database result row into $row in turn

while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
    for ($i = 0; $i < $columnlenght; $i++) {
        $objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$i] . $rowCount, $row[$i]);
    }
    $rowCount++;
}
// set header information to force download
header('Content-type: application/vnd.ms-Excel');
header('Content-Disposition: attachment; filename="' . $fileName . '"');
// Instantiate a Writer to create an OfficeOpenXML Excel .xlsx file
// Write the Excel file to filename some_Excel_file.xlsx in the current directory
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
// Write the Excel file to filename some_Excel_file.xlsx in the current directory
$objWriter->save('php://output');

mysqli_close($conn);
?>
14
user979974

Retirez simplement le "break"; dans le fichier functions.php. Comme break est après l'instruction return, il donne donc une erreur fatale.

27
Ankit

La bonne façon de résoudre le problème d'incompatibilité avec les bibliothèques open source tierces serait de:

  1. Vérifiez s'il existe déjà une version mise à jour de la bibliothèque avec laquelle vous rencontrez des problèmes
  2. Soumettez un bogue au responsable de la bibliothèque et si vous avez corrigé un fichier diff avec votre correctif, ou git pull request

Dans votre cas, téléchargez simplement PHPExcel depuis github, décompressez et écrasez les anciennes bibliothèques.

1
Aleksandar Pavić