Corsi on-line

PHP: Estrarre l’host da una URL complessa

Grazie alla funzione parse_url() di PHP è possibile analizzare in un battibaleno le URL ed eseguire, automaticamente, una serie di operazioni altrimenti complesse. Grazie a questa funzione, ad esempio, è possibile estrarre il dominio (o più correttamente l’host) da una URL complessa. Ecco un esempio:

$url = "http://www.mrwebmaster.it/php/estrarre-dominio-da-url.html";
$dominio = parse_url($url, PHP_URL_HOST);
echo $dominio;
// output: www.mrwebmaster.it 

Qualora si desideri estrarre solo il secondo livello (nel nostro esempio “mrwebmaster.it” senza il www) bisognerà ricorrere ad una funzioncina ad hoc:

function secondo_livello($url) {
   $purl = parse_url($url);
   $secondolivello = isset($purl['host']) ? $purl['host'] : '';
   if (preg_match('/(?P<secliv>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $secondolivello, $regs)) {
     return $regs['secliv'];
   }else{
     return false;
  }
}

$url = "http://www.mrwebmaster.it/php/estrarre-dominio-da-url.html";
$sec_liv = secondo_livello($url);
echo $sec_liv;
// output: mrwebmaster.it

Lo scopo della funzione vista sopra, ovviamente, non consiste solo nel togliere il www (operazione per la quale basterebbe str_replace()) ma anche (e soprattutto) ridurre al secondo livello le URL di terzo livello come, ad esempio, “blog.mrwebmaster.it”.

Post correlati
  • Anonimo

    Salve, interessantissima funzione solo che non riesco a modificarla per prelevare solo il nome del dominio di terzo livello. 
    Potresti aiutarmi?
    Grazie in anticipo

I più letti del mese
Tematiche