Pagina 1 di 1
[PHP] estrarre href dalla favicon
Inviato: giovedì 25 settembre 2008, 15:17
da progalba
ciao, dovrei estrarre la shortcut icon, la favicon da un qualsiasi sito web
questa, dovrei mettere in una variabile "favicon.gif"
come posso estrapolarla? qualcuno sa la regexp?
ben accette guide link dell'argomento
thx sin da ora
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 10:54
da garak
Puoi estrarla con una query xpath sul DOM, in modo molto simile a come faresti con javascript.
Per esempio, supponendo che tu abbia un file locale chiamato pippo.html
Codice: Seleziona tutto
<?php
$dom = new DomDocument();
$dom->loadHTMLFILE('pippo.html');
$xpath = new DomXPath($dom);
$result = $xpath->query("/html/head/link");
foreach ($result as $el)
{
if ($el->getAttribute('rel') == 'shortcut icon')
{
echo $el->getAttribute('href');
}
}
?>
Puoi consultare il manuale di php:
http://it.php.net/manual/it/book.dom.php
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 12:44
da progalba
guarda a parte questo forum ho lo stesso post in altri 10 forse, e nessuno è riuscito a darmi una risposta, lo provo subito e ti faccio sapere...
mi sembra quasi troppo facile, rischi di vincerti 10 birre da mezzo
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 14:13
da progalba
mi da errore, forse perchè È una xhtml e non html?
dovrebbe funzionare in qualsiasi caso però anche con htm, o php o asp..
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 14:21
da garak
progalba ha scritto:
mi da errore, forse perchè È una xhtml e non html?
dovrebbe funzionare in qualsiasi caso però anche con htm, o php o asp..
Quale errore? Il metodo che ti ho proposto dovrebbe funzionare con qualsiasi pagina, purché tu abbia l'accortezza di salvartela prima in un file, o se preferisci puoi memorizzarla in una stringa ed usare loadHTML invece di loadHTMLFile
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 15:20
da progalba
mi stampa tutta la pagina, perchè carico pagine magari di altri siti, magari di ubuntu.it o google.it..
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 15:26
da progalba
l'errore è
Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: htmlParseEntityRef: expecting ';' in Entity, line: 95 in /home/www/095ec8caca521cf69bd64fe6dacb3a1c/web/ext/add.php on line 46
la linea 46 È questa $dom->loadHTML($sorgente_file_remoto); dove sorgente file remoto è
if(@fopen($url, 'r')){
$metatags_array = get_meta_tags($url);
$description_tag = $metatags_array['description'];
$file_remoto = "$url";
$sorgente_file_remoto = implode("", file($file_remoto));
if(eregi("(.+)", $sorgente_file_remoto, $regs)) {
$title_tag = "$regs[1]";
}
Re: [PHP] estrarre href dalla favicon
Inviato: venerdì 26 settembre 2008, 15:27
da progalba
scusami.. e $url è un indirizzo qualsiasi inviato per get o post
PS: se lo eseguo con una pagina sul mio stesso server funziona
Re: [PHP] estrarre href dalla favicon
Inviato: sabato 27 settembre 2008, 9:30
da garak
Temo purtroppo che il dom si arrabbi se non riesce a parsare correttamente l'albero. Potresti provare a pulire il file (con qualcosa come tidy) oppure più semplicemente individuare la stringa body e togliere da quel punto in poi.
P.S. evita di usare eregi e tutte le funzioni ereg*, sono deprecate.