Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Verificare se un sito Web è raggiungibile con PHP :: Indice Php

Verificare se un sito Web è raggiungibile con PHP

Categoria: Php Inserito il: 29-10-2012 Stampa (23143 click)

Può capitare di dover sviluppare una Web application il cui scopo sia di produrre un determinato comportamento sulla base della disponibilità di un servizio; un esempio potrebbe essere quello di uno script PHP che debba leggere il markup di una pagina Internet dopo aver verificato la raggiungibilità del sito Web che la contiene. L'oggetto di questo post sarà proprio la creazione di uno script in che possa effettuare tale verifica.

Una semplice funzione in grado di accettare come parametro un nome a dominio all'interno di una URL sottoposta a filtro di validazione potrebbe essere la seguente:

function controllaDominio($nome_dominio)
	{
	# controllo di validità sull'URL
	if(!filter_var($nome_dominio, FILTER_VALIDATE_URL))
	{
        	return false;
	}
	# inizializzazione della sessione cURL
	$curl = curl_init($nome_dominio);
	curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,10);
	curl_setopt($curl,CURLOPT_HEADER,true);
	curl_setopt($curl,CURLOPT_NOBODY,true);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
	# esecuzione della sessione
	$output = curl_exec($curl);
	# chiusura della sessione
	curl_close($curl);
	# controllo sul risultato della chiamata	
	if ($output) 
	{
		return true;
	}else{
		return false;
	}
}

La funzione proposta dovrà essere utilizzata in questo modo (naturalmente potrete passare come argomento l'URL di un qualsiasi altro sito Web):

if(controllaDominio('http://www.claudiogarau.it'))
{
	echo 'Dominio raggiungibile.';
}else{
	echo 'Dominio irraggiungibile.';
}

Tenete conto che lo script potrebbe restituire dei risultati inattesi se testato in locale, questo perché non di rado i provider di connessione raccolgono automaticamente le chiamate verso risorse inaccessibili e le redirezionano verso un proprio servizio, ad esempio un motore di ricerca. Utilizzato on line dovrebbe invece funzionare correttamente.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Views, transactions e Cursors
Le Views consentono di generare delle "tabelle virtuali" in cui sono state già eseguite operazioni di selezione e manipolazioni dei... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti