PHP  »  Articoli  »  Programmazione Php 

Le funzioni di controllo dell'output

di: Fabio Sutto     25 Settembre 2002

Premessa

In questo articolo esamineremo alcune funzioni di php4 che permettono di ottimizzare l?esecuzione degli scripts e velocizzare sensibilmente il caricamento delle pagine WEB da parte dei navigatori.

Passiamole in rassegna brevemente:

  • ob_start -- attiva il buffering dell?output
  • ob_flush -- invia al browser il contenuto del buffer
  • ob_end_flush -- invia al browser il contenuto del buffer e interrompe l? immagazzinamento
  • ob_implicit_flush -- attiva o disattiva l?invio automatico dei dati
  • ob_gzhandler -- funzione di compressione gzip dei dati nel buffer
  • ob_clean -- cancella il contenuto del buffer
  • ob_end_clean -- cancella il contenuto del buffer e interrompe l? immagazzinamento
  • ob_get_contents -- restituisce il contenuto dei dati immagazzinati nel buffer
  • ob_get_length -- restituisce la lunghezza del buffer
  • ob_get_level -- restituisce il livello di annidamento del meccanismo di buffering
  • ob_get_status -- restituisce lo status del buffer (in fase sperimentale)

I nomi di tutte le funzioni appena descritte presentano il prefisso "ob_" che sta per "output buffering".

Il buffering consiste nell'accumulo in una memoria temporanea, detta appunto "buffer", di ogni dato che lo script altrimenti invierebbe immediatamente all?output attraverso echo() o print().

A partire dal momento della chiamata ad ob_start() tutti gli output verranno deviati verso il buffer e spediti al client soltanto al termine dell' esecuzione dello script, od ogniqualvolta vi sia una chiamata ad una funzione *_flush() (vedi pagine successive).

I casi in cui le funzioni "ob_xxx" si rivelano utili sono essenzialmente 3:

1) quando le pagine presentano un numero notevole di funzioni di stampa queste, attraverso le funzioni "ob", verranno fatte convergere in una sola riducendo il traffico di dati dal server al client.

2) quando si intende facilitare lo scaricamento delle pagine da parte degli utenti spedendo loro dati in formato compresso.

3) quando l'invio di headers crea problemi: in script corposi può essere utile poter progettare la logica del codice liberamente, senza la preoccupazione di aver inserito degli headers (cookie, redirezione etc. etc.) successivamente a delle operazioni di output.

Per dimostrare l?effettiva utilità delle funzioni di buffering dell?output nelle situazioni appena descritte sono state effettuate alcune prove, sia in locale che remoto.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti