:::: MENU ::::
Browsing posts in: Development

Verificare l’esistenza di un URL con PHP

In questo articolo vedremo come controllare l’esistenza di un determinato URL utilizzando PHP. In parole povedere dobbiamo verificare se sul server esistono o meno i contenuti che stiamo richiedendo attraverso l’URL. Possiamo agevolmente verificare l’esistenza di URL in due modi:

  • il primo è la funzione get_header();
  • il secondo metodo è l’uso della libreria CURL.

Fondamentalmente bisogna verificare l’header HTTP dell’URL e sulla base di questo determinare se esiste oppure no. Il codice 200 rappresenta un URL funzionante mentre il codice 404 rappresenta la pagina non trovata, quindi un URL non funzionante o inesistente.

Metodo 1: Funzione get_headers()

Usando la funzione get_headers siamo in grado di ottenere le informazioni dell’Header HTTP dell’URL.

Nota: Se si imposta il secondo parametro della funzione get_headers() a true allora si otterrà il risultato in un array associativo.

Metodo 2: libreria cURL

Nota: Abbiamo usato CURLOPT_NOBODY per controllare solo per l’instestazione, il resto del contenuto non ci interessa.

Condividete le vostre opinioni / commenti / suggerimenti qui sotto.


Output buffering con PHP e ob_flush()

L’output buffering è un’interessante caratteristica di PHP. Quando si esegue uno script PHP e si genera un contenuto di output (codice HTML con la funzione echo ad esempio), tale contenuto HTML viene trasferito dal server al browser. Ma cosa succede se si prova a generare dei contenuti di output mentre si esegue uno script?

Normalmente quando il server è impegnato in qualche operazione, l’output viene momentaneamente sospeso in attesa di terminare lo script. Il motore PHP memorizza gli eventuali contenuti di output in un buffer interno piuttosto che passarli subito al browser. Non appena termina l’esecuzione dello script PHP, il contenuto viene passato al browser e il buffer svuotato. A questo punto entra in gioco l’Output Buffering.

Abbiamo solo bisogno di chiamare una funzione PHP per avviare il buffering PHP. Date un’occhiata a questo blocco di codice:

Come inviare l’output buffer al browser?

Una volta che il buffer di output è stato avviato, nulla sarà visualizzato in output dal browser, a meno che non si utilizzi una specifica funzione oppure  termini l’esecuzione dello script.

Per inviare il contenuto del buffer al browser e quindi visualizzarlo, allora avete bisogno di usare questa funzione:


La funzione ob_flush() passerà il contenuto del buffer al browser, e lo script PHP continuerà a visualizzare il contenuto del buffer. Cosa bisogna fare se si desidera trasmettere il contenuto dell’output buffer al browser e fermare il riempimento del buffer?Avrete bisogno di questa funzione:

Come eliminare l’output buffer?

Se invece si desidera eliminare tutto il contenuto dal buffer allora avrete bisogno della seguente funzione:

Come ob_flush(), ob_clean() non interrompe il riempimento del buffer. Per eliminare il buffer e fermare il riempimento del buffer è necessario utilizzare la funzione:

Come controllare i contenuti all’interno dell’Output Buffer?

Abbiamo visto le funzioni per l’eliminazione e l’outputing del contenuto del buffer. Se invece si desidera solamente controllare il contenuto memorizzato nel buffer è possibile utilizzare questa funzione e una semplice variabile PHP:

Un piccolo esempio

Per vedere in azione meglio, vi consiglio di creare due file PHP e confrontare l’esecuzione dei due file. Date un’occhiata al blocco di codice qui sotto. Come potete vedere ho usato la funzione phpinfo() e subito dopo sleep(10), per “addormentare” lo script di 10 secondi. In questo caso non ho usato ob_start(). Quello che accade è che viene mostrato il contenuto di phpinfo, lo script si addormenta per 10 secondi e poi termina la sua esecuzione.


In quest’altro blocco di codice potete vedere la magia dell’output buffer. Ho usato ob_start() prima di chiamare sleep(10) e phpinfo(). In questo caso lo script attenderà 10 secondi prima di mostrare il contenuto di phpinfo, anche se sleep(10) è stato chiamato dopo phpinfo().

Vantaggi

Uno dei principali vantaggi dell’output buffering è il caching. E’ possibile memorizzare nella cache il contenuto (in realtà pagina intera rendering) con l’aiuto dell’output buffering. Proprio per spiegare come funziona. È possibile avviare il buffering e si può tamponare il contenuto intero e alla fine dello script prima eco l’uscita si avrà il contenuto della pagina intera, che è possibile memorizzare nella cache in qualsiasi modo si desidera.


Pagine:1234

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close