Ошибка JpGraph: HTTP-заголовки уже отправлены

Проблема в том, что JpGraph отображается неправильно на моей веб-странице. Странно то, что если я буду запускать вышеуказанный код изолированно, то он работает. Но если я вставляю его в свой основной код, он не сможет создать вышеприведенное сообщение. PS Я использую ‘ob_start ();’, но это не решает проблему.

// A new graph with automatic size $graph = new GanttGraph (0,0, "auto"); // A new activity on row '0' $activity = new GanttBar (0,"Project", "2001-12-21", "2002-02-20"); $graph->Add( $activity); // Display the Gantt chart $graph->Stroke(); ?> 
JpGraph Error: HTTP headers have already been sent. Caused by output from file index.php at line 85. Explanation: HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text). Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. For example it is a common mistake to leave a blank line before the opening "<?php".

JpGraphs не может существовать в файлах с html. Они должны быть в чистом файле php. Чтобы обойти это, я создал отдельный файл, который генерирует график, и сделал все это функцией. В конце, измените

 $graph->Stroke(); 

в

 $graph->Stroke("..jpg"); 

Затем на странице index.php укажите файл изображения.

Итак, как вам кажется,

createjpgraph.php:

 < ?php function GenGraph () { // A new graph with automatic size $graph = new GanttGraph (0,0, "auto"); // A new activity on row '0' $activity = new GanttBar (0,"Project", "2001-12-21", "2002-02-20"); $graph->Add( $activity); // Display the Gantt chart $graph->Stroke("./foler/file.jpg"); } ?> 

index.php:

 ... 
... < ?php include 'createjpgraph.php'; GenerateGraph(); ?>

Надеюсь, что это работает для вас.

Вы даже можете сделать это в одном документе html – сначала написав граф в файл, а затем отображая его …

 //Code generating your graph here ... // Finally output the image to a file $graph->Stroke("/var/www/htmlhttps://stackoverflow.com/tmp/out.jpg"); //end of php code ?>     

Кажется, что jpeg-файл, который создается функцией, не может быть написан в моем случае …

чтобы переписать его. Я изменил свой файл gd_image.inc.php .. вам нужно прокомментировать строку, в которой говорится JpGraphError::RaiseL(25111,$aStrokeFileName)