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

Résolu
F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2845 Statut Membre -
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

  1. Utilisateur anonyme
     
    Bonjour

    Tu as oublié le point-virgule à la fin de la ligne précédente.
    2
    1. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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
    2. Utilisateur anonyme
       
      1455 interventions...
      Tu devrais savoir que 99% des gens qui posent des questions ici ne vérifient rien du tout ^^
      0
    3. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
       
      je suis vraiment désolée pour cette erreur à la con.
      0
    4. Utilisateur anonyme
       
      Pas grave
      0
  2. Utilisateur anonyme
     
    As-tu posé la question sur le forum HTML2PHP ?
    1
    1. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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
    2. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    3. Utilisateur anonyme
       
      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
    4. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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
  3. Pitet Messages postés 2845 Statut Membre 530
     
    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
    1. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
       
      Salut,
      c'est encodé UTF-8 sans BOM
      0
  4. Pitet Messages postés 2845 Statut Membre 530
     
    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
    1. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
       
      OMG!!! Merci ça fonctionne très bien.
      0
    2. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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
    3. Pitet Messages postés 2845 Statut Membre 530
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  7. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
     
    TCPDF ERROR: Some data has already been output, can't send PDF file

    Nouvelle erreur
    0
  8. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
     
    Même erreur
    0
  9. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
  10. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
     
    J'ai internet explorer, mozilla et chrome et ça ne fonctionne pas sur les trois
    0
  11. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
     
    J'ai fait un ctrl+F et il n'y a pas cette ligne dans le code.
    0
    1. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      Essayes avant la ligne qui contient
      return $this->pdf->Output($name, $dest);
      (j'ai vérifié, celle ci existe bien :-))
      0
  12. F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  13. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    Bonjour,

    Peux tu me donner ta version de PHP ?
    -1
  14. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    Peux tu essayer de remplacer
    ?>
    
    <table>
    <tr>
    <td>Salut</td>
    </tr>
    </table>
    
    <?php 

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

    -1
  15. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
  16. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
    1. Pitet Messages postés 2845 Statut Membre 530
       
      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
    2. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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