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:
Ovviamente bisogna sostituire la stringa con una sequenza di circa 50.000 caratteriCodice 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;
}
(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...

Rispondi quotando
