Bonjour,
J'utilise la librairie WriteExcel pour générer un fichier Excel ou je récupère des données de ma BD.
J'ai un problème avec un seul champs, pour expliquer plus, ce champs a été généré par "tinymce" le fameux éditeur des champs textarea, bref ce champs contient des balises "<>", et pour extraire juste mon texte j'applique la fonction "strip_tags".
au moment ou j'applique cette fonction, j'ai ce message ci-dessous qui s'affiche.
Je mets mon code qui génère l'erreur
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php
//connexion à la bd
include"config.php";
$db = mysql_connect($serveur, $login, $password);
mysql_select_db($base,$db);
//set_time_limit(10);
require_once "class.writeexcel_workbook.inc.php";
require_once "class.writeexcel_worksheet.inc.php";
$fname = tempnam("/tmp", "simple.xls");
$workbook = &new writeexcel_workbook($fname);
$worksheet = &$workbook->addworksheet();
//requete
$ListeOrien = "SELECT ID_ACT_CD, ACT_DESCRIP
FROM PA_STRATEGIE s
JOIN PA_ACTION a ON a.ID_STRAT_CD = s.ID_STRAT_CD
JOIN PA_TERRITOIRE t ON s.ID_TER_CD=t.ID_TER_CD
JOIN PA_UTILISATEUR u ON u.ID_USER = a.ID_USER ";
$ListeOrien = mysql_query($ListeOrien) or die("pas de liste");
if (mysql_num_rows($ListeOrien)<>0)
{
for ($i=0; $i < mysql_num_rows($ListeOrien); ++$i)
{
$copie = mysql_fetch_array($ListeOrien);
$ACT_DESCRIP=$copie[1];
$ACT_DESCRIP=strip_tags($ACT_DESCRIP);
$worksheet->write($i, 0, $ACT_DESCRIP );
}
}
$workbook->close();
//header("Content-type: application/vnd.ms-excel");
//header('Content-Type: application/x-msexcel; charset=ISO-8859-1');
header("Content-Type: application/vnd.ms-excel; name=\"example-demo.xls\"" );
header("Content-Disposition: inline; filename=\"example-simple.xls\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
?> |
Code :
Fatal error: Sintactic error: , lookahead: , current char: 0 in class.writeexcel_formula.inc.php on line 1446
je mets le bout de code du fichier "class.writeexcel_formula.inc.php"
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| function _fact()
{
if ($this->_current_token == SPREADSHEET_EXCEL_WRITER_OPEN)
{
$this->_advance(); // eat the "("
$result = $this->_parenthesizedExpression();
if ($this->_current_token != SPREADSHEET_EXCEL_WRITER_CLOSE) {
trigger_error("')' token expected.",E_USER_ERROR);
}
$this->_advance(); // eat the ")"
return $result;
}
if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$this->_current_token))
{
// if it's a reference
$result = $this->_createTree($this->_current_token, '', '');
$this->_advance();
return $result;
}
elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-Ia-i]?[A-Za-z][0-9]+$/",$this->_current_token))
{
// If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
$result = $this->_createTree($this->_current_token, '', '');
$this->_advance();
return $result;
}
elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$this->_current_token) or
preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$this->_current_token))
{
// if it's a range
$result = $this->_current_token;
$this->_advance();
return $result;
}
elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/",$this->_current_token))
{
// If it's an external range (Sheet1!A1:B2)
$result = $this->_current_token;
$this->_advance();
return $result;
}
elseif (preg_match("/^'[A-Za-z0-9_ ]+(\:[A-Za-z0-9_ ]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/",$this->_current_token))
{
// If it's an external range ('Sheet1'!A1:B2)
$result = $this->_current_token;
$this->_advance();
return $result;
}
elseif (is_numeric($this->_current_token))
{
$result = $this->_createTree($this->_current_token, '', '');
$this->_advance();
return $result;
}
elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$this->_current_token))
{
// if it's a function call
$result = $this->_func();
return $result;
}
trigger_error("Sintactic error: ".$this->_current_token.", lookahead: ".
$this->_lookahead.", current char: ".$this->_current_char, E_USER_ERROR);
} |
La ligne 1446 c'est :
Code :
1 2
| trigger_error("Sintactic error: ".$this->_current_token.", lookahead: ".
$this->_lookahead.", current char: ".$this->_current_char, E_USER_ERROR); |
Merci de votre aide .
Cordialement.