Ciao a tutti, avrei bisogno del vostro aiuto.
Ho trovato su internet questa funzione:

Codice PHP:
class htmlParser
{
protected
$title;
protected
$metas;
protected
$source;

public function
__construct($source)
{
if (!
is_string($source))
{
throw new
Exception('Il sorgente della pagina deve essere una stringa');
}

$this->source = $source;
}

public function
getSource()
{
return
$this->source;
}

public function
getTitle($default = null)
{
if (!
$this->title)
{
if (
preg_match("/<title>([^>]*)<\/title>/i", $this->source, $title))
{
$this->title = strip_tags($title[1]);
}
else
{
$this->title = $default;
}
}

return
$this->title;
}

public function
getMetas()
{
if (!
$this->metas)
{
if (
preg_match_all("/<meta[^>]+name=\"([^\"]*)\"[^>]" . "+content=\"([^\"]*)\"[^>]+>/i", $this->source, $metas))
{
$count = count($metas[0]);
$res = array();

for (
$i = 0; $i < $count; $i++)
{
$res[strtolower(trim($metas[1][$i]))] = trim($metas[2][$i]);
}

$this->metas = $res;
}
else
{
$this->metas = array();
}
}

return
$this->metas;
}

public function
getMeta($meta, $default = null)
{
if (
$this->hasMeta($meta))
{
return
$this->metas[strtolower($meta)];
}

return
$default;
}

public function
hasMeta($meta)
{
if (!
$this->metas)
{
$this->getMetas();
}

return (bool) isset(
$this->metas[strtolower($meta)]);
}
}
Questa classe dovrebbe dato un indirizzo restituire alcuni parametri.

Codice PHP:
$hp = new htmlParser(file_get_contents($link));
$link_title1 = $hp->getTitle('Nessun titolo');
$link_title2 = $hp->getMeta('title', 'Nessun titolo');
$link_description = $hp->getMeta('description', 'Nessuna descrizione');
Ho notato che la classe funziona solo se il tag è in questo formato
<meta name="title" content="testo"/>
ma non funziona in questo
<meta content="testo" name="title"/>

Non conosco molto bene le classi... mi aiutate a risolvere?