Salve a tutti,

spiego subito il mio problema cercando di riassumere:

Sto realizzando una pagina php che crea un file PDF e lo mostra nella pagina del browser.
Il problema è che il risultato dell'elaborazione non inizia per %PDF- (intestazione tipica di un file in pdf.. )

Il problema non credo sia dovuto ad errori di codice, infatti ho replicato l'errore in poche semplici righe:

Codice PHP:
$i 0;

// questo simula la sequenza di caratteri %PDF-
echo "[START]"

while(
$i 10){
   
// questo simula un pdf bello carico nel buffer

   
echo "\n"$i "----------------------\n\n";
   echo 
"STRINGA MOOOOLTO LUNGA 50.000 caratteri circa";
   echo 
$i;


Ovviamente bisogna sostituire la stringa con una sequenza di circa 50.000 caratteri
(io ne ho usati 49.093). Questa stringa simula il codice del file pdf per il test.

Ci si aspetterebbe un output del tipo:

[START]
0-------------------------------

[sequenza di circa 50.000 caratteri]
1-------------------------------

[altra sequenza di circa 50.000 caratteri]

...

...

9------------------------------


[solita sequenza]


Invece il risultato e' qualcosa del tipo:


[pezzo di una certa sequenza (la settima nel mio caso)]

8---------------------------------


[solita sequenza]
9---------------------------------


[solita sequenza]
HTTP/1.1 200 OK <----- compaiono gli headers!!!!
Date: Thu, 08 Dec 2011 01:18:15 GMT
Server: Apache/2.2.17 (Win32) PHP/5.3.4
X-Powered-By: PHP/5.3.4
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
[start] (<---- NOTARE DOVE STA LA PRIMA RIGA)
0---------------------------------


[solita sequenza]
1---------------------------------

eccetra...

Ragazzi non so se mi sono spiegato ma è come se da un certo punto in poi, smettesse di scrivere "in fondo" e incominciasse a scrivere dall'inizio...

Se si porta while a ciclare fino a 6 non succede nulla di strano.

Nel php.ini ho output_buffering = On, ve lo segnalo perchè ho pensato che si trattasse di un limite del buffer.

Spero di aver dato la giusta quantità di informazioni...