Parse error: syntax error, unexpected 'ob_start' (T_STRING)

Résolu/Fermé
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014 - Modifié par pijaku le 7/08/2014 à 10:55
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 7 août 2014 à 13:25
Bonjour,

j'essaye de générer un PDF et je suis tout au début de la démarche, voici mon code:

<?php
$data = serialize(file_get_contents('datas.txt'))
ob_start(); 
?>

<table>
 <tr>
  <td>Salut</td>
 </tr>
</table>

<?php
$content = ob_get_clean();
require('html2pdf/html2pdf.class.php');

try
{
 $pdf = new HTML2PDF('P', 'A4', 'fr');
 $pdf->pdf->SetDisplayMode('fullpage');
 $pdf->writeHTML($content);
 $pdf->Output('test.pdf');
}
catch(HTML2PDF_exception $e)
{
 die($e);
}
?>


J'ai un problème à la troisième ligne de mon code.

Est ce que quelqu'un pourrait m'aider svp?


15 réponses

Utilisateur anonyme
7 août 2014 à 09:44
Bonjour

Tu as oublié le point-virgule à la fin de la ligne précédente.
2
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 09:46
Pffff j'avais même pas vu, ce sont des erreurs que je pense qui sont vérifiées avant de poster sur un forum d'assistance informatique, je cherche tout de suite un problème plus important ^^
0
1455 interventions...
Tu devrais savoir que 99% des gens qui posent des questions ici ne vérifient rien du tout ^^
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 09:54
je suis vraiment désolée pour cette erreur à la con.
0
Utilisateur anonyme
7 août 2014 à 10:02
Pas grave
0
As-tu posé la question sur le forum HTML2PHP ?
1
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:07
J'y ai pensé aussi, mais je me suis dit qu'il n'y avait pas vraiment de raison pour que le problème vienne de HTML2PDF* ; je pense que c'est juste un problème de transmission des informations à la fonction qui créé le PDF, d'où la définition plus claire de la variable $content.
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 10:17
Non j'ai pas posé la question sur le forum de HTML2PHP

Vous pensez que c'est nécessaire à ce niveau que je le fasse?
0
Quel rapport ???
La variable $content dont F2C parlait dans sa première question est très bien définie par
$content = ob_get_clean();
,F2C ne se plaint pas d'une erreur sur cette ligne.
As-tu remarqué que F2C nous parle maintenant d'un problème qui n'a strictement aucun rapport avec le premier ?
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:24
Hou là, c'est limite agressif ce que tu me répond là, alors la solution pour toi c'est d'envoyer les utilisateurs vers l'éditeur de leur logiciel pour qu'ils se débrouillent ? Donc si on suit ton raisonnement, le prochain qui a un bug avec Windows on le renvoie directement vers Microsoft ? Si tu n'as pas envie de l'aider, libre à toi, mais vient pas m'ennuyer avec ces détails et laisse moi essayer de régler son problème sans l'assistance de HTML2PDF qui ne l'aidera certainement pas.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
7 août 2014 à 10:48
Salut,

Ton erreur "TCPDF ERROR: Some data has already been output, can't send PDF file" indique que tu envoie du contenu avant la fin de ton code ($html2pdf->Output('exemple.pdf')).

Ton fichier ne serait pas enregistrer en utf-8 avec BOM par hasard ? Pour vérifier, tu peux utiliser Notepad++ par exemple, menu Encodage.
Ton fichier php doit être encodé sans BOM.

Bonne journée
1
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 10:50
Salut,
c'est encodé UTF-8 sans BOM
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
7 août 2014 à 10:59
L'affichage du contenu avant la fin de ton code peut venir également de :
- un affichage en php (echo, print_r, var_dump...)
- des notices ou warning php si les erreurs sont affichées
- une ligne html vide

Essaye avec ce code :
<?php
    // pas de ligne vide avant la balise php

    // on désactive l'affichage des erreurs
    ini_set('display_errors', TRUE);

    $content = "
<page>
    <h1>Exemple d'utilisation</h1>
    <br>
    Ceci est un <b>exemple d'utilisation</b>
    de <a href='http://html2pdf.fr/'>HTML2PDF</a>.<br>
</page>";

    require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
    $html2pdf = new HTML2PDF('P','A4','fr');
    $html2pdf->WriteHTML($content); // in $content you put your content to have in pdf
    $html2pdf->Output('exemple.pdf');

    // pas besoin de fermer la balise php à la fin
1
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 11:05
OMG!!! Merci ça fonctionne très bien.
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 11:18
Je n'ai finalement pas compris la résolution de ce problème ^^ Encore je pourrais comprendre avec l'utilisation de
ob_start();
mais là je ne vois pas la différence entre ton code et le mien si ce n'est l'ajout de
ini_set('display_errors', TRUE);
(qui au passage active l'affichage des erreurs ?) et le fait que tu ne fermes pas la balise PHP à la fin...
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
7 août 2014 à 13:25
Effectivement c'est ini_set('display_errors', FALSE); pour désactiver l'affichage des erreurs.

Mais le problème venait surement d'une ligne vide après la balise de fermeture php, ce qui est considéré comme du contenu html.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 09:57
Vraiment Vraiment désolée pour cette erreur à la con.

J'ai un problème plus sérieux et là c'est vraiment pas des bêtises.

En fait j'ai téléchargé la classe HTML2PHP et c'est avec ça que je travaille.
Mais j'ai des lignes et des lignes d'erreur du style

Undefined index: rowspan in C:\wamp\www\html2pdf\html2pdf.class.php on line 5251

Est ce que vous pourriez m'aider SVP SVP??
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 10:13
TCPDF ERROR: Some data has already been output, can't send PDF file

Nouvelle erreur
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 10:21
Même erreur
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:29
Peux tu essayer avec un autre navigateur ? Tu étais sur lequel ? Essayes sous Firefox / IE et Chrome si possible.
Effectue la combinaison de touches CTRL+F5 avant.
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 10:33
J'ai internet explorer, mozilla et chrome et ça ne fonctionne pas sur les trois
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 10:47
J'ai fait un ctrl+F et il n'y a pas cette ligne dans le code.
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:58
Essayes avant la ligne qui contient
return $this->pdf->Output($name, $dest);
(j'ai vérifié, celle ci existe bien :-))
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
7 août 2014 à 11:07
Merci à chacun de vous.

ça fonctionne bien.


PS: jetez un oeil sur cette discussion au cas où je serais pommée par la suite SVP :)
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 09:43
Bonjour,

Peux tu me donner ta version de PHP ?
-1
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:03
Peux tu essayer de remplacer
?>

<table>
<tr>
<td>Salut</td>
</tr>
</table>

<?php 

par
$content = "
<table>
<tr>
<td>Salut</td>
</tr>
</table>";

-1
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:17
Peux tu faire un essai sur un fichier test.php qui contiendrait le code original d'un sample de la classe ?

Dans ton fichier test.php, tu mets le code suivant :

<?php
    $content = "
<page>
    <h1>Exemple d'utilisation</h1>
    <br>
    Ceci est un <b>exemple d'utilisation</b>
    de <a href='http://html2pdf.fr/'>HTML2PDF</a>.<br>
</page>";

    require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
    $html2pdf = new HTML2PDF('P','A4','fr');
    $html2pdf->WriteHTML($content); // in $content you put your content to have in pdf
    $html2pdf->Output('exemple.pdf');
?> 


Tu fais pointer ton navigateur vers le fichier http://localhost/test.php et dis moi ce que ça donne.
-1
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 10:44
Dans le fichier html2pdf.class.php, peux rechercher la ligne
return $this->pdf_renderer->render($this->filename, $display); 
et y ajouter avant
ob_end_clean(); 
sur une nouvelle ligne ?
-1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 7/08/2014 à 11:06
Modifier la classe html2pdf n'est pas conseillé à mon avis, à moins d'être sur que le problème vient de là. Cette classe est utilisée par des milliers d'utilisateur sans aucun problème.

On peut toujours essayer.
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 août 2014 à 11:15
Oui, c'est juste pour tester, ça fait partit des solutions que j'ai pu trouver sur le net, certains CMS qui utilisent cette classe pour générer des PDF et qui ont la même erreur.
0