Newsgroup: it.comp.www.php
Titolo: Content-length .. Come fare?

Salve a tutti,
avrei un semplice problema: ho la necessita' che una pagina php invii tra 
gli headers anche il Content-Length.
Sul manuale ho trovato la funzione header().. tuttavia, per poterla usare(se 
ho capito bene), avrei bisogno a priori di conoscere la dimensione finale 
della pagina per poterla passare come parametro nella funzione. Ovviamente 
non conosco tale dimensione fin dall'inizio, e la funzione header deve 
essere utilizzata prima di qualunque output..
Una soluzione potrebbe essere quella di utilizzare ob_start() e 
ob_end_flush() in modo da creare prima la pagina, determinarne la dimensione 
e infine inviare l'output... Ma non esiste un altro metodo piu' semplice?
Insomma, non c'e' un modo per forzare l'invio di tale header da parte del 
server web?
Vi ringrazio per le eventuali risposte,
Miccar 

 per forzare l'invio di tale header da parte del server web?
Sei davvero sicuro che non venga gia' fatto?
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 Sei davvero sicuro che non venga gia' fatto?
Si, sono sicuro. Non viene trasmesso il content-length.
Ho realizzato alcune applicazioni in j2me che si connettono ad una pagina 
php per lo scambio di dati.. In alcuni dispositivi mobili (solo in alcuni) 
e' necessario che la pagina web a cui ci si collega trasmetta il 
content-length, altrimenti il dispositivo non riesce a leggere il contenuto 
della pagina stessa (credo sia un bug delle java virtual machine).
Qualcuno ha avuto lo stesso problema? Come ha risolto?
Come dicevo poco sopra.. non c'e' una direttiva o qualcosa del genere che 
forzi l'invio del suddetto header?
Grazie ancora,
Miccar 

 Si, sono sicuro. Non viene trasmesso il content-length.
Che versione di PHP, che web server (comprensivo di versione), che
interfaccia di collegamento (CGI, FastCGI, ISAPI, mod_php, ...), che
tipo di codice stai utilizzando? Hai verificato gli header restituiti?


che  tipo di codice stai utilizzando? Hai verificato gli header restituiti?
Non capisco la domanda "tipo di codice"..
Gli header restituiti:
X-Powered-By: PHP/4.4.1
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Credo che uno dei problemi sia il Transfer-Encoding.. Non dovrebbe essere 
chunked per funzionare.. E mi sembra di aver capito, leggendo qua e la, che 
basta fare in modo che venga trasmesso l'header content-length per risolvere 
il problema.
Miccar 

forzi l'invio del suddetto header?
Non c'e' soluzione perche' finche' non hai generato la pagina, non puoi
sapere - ne' tu, ne' il server - quanto e' lunga.
Sicche', la "direttiva" che cerchi alla fine farebbe esattamente quello
che devi fare tu: ob_start(), leggere il contenuto, mandare l'header, e
nel frattempo tenere tutto in memoria.
Puo' darsi quindi che ragionando al contrario :-) - attivando il buffer
nel server Web, o magari in PHP.INI - il Content-Length appaia. Forzare
mi sa che non si forzi nulla, ma prova comunque a vedere sul manuale.
Leonardo
-- 
Avere studiato senza mettere in pratica e' inutile;
mettere in pratica senza avere studiato e' pericoloso.
                                                - Conphpucio