[PHP] estrarre href dalla favicon

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
progalba
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 490
Iscrizione: sabato 3 maggio 2008, 14:01
Desktop: Xfce
Distribuzione: Xubuntu 13.10 architettura 64x

[PHP] estrarre href dalla favicon

Messaggio 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
Uso Ubuntu 13.10 con Unity su HP 20-2000ez all-in-one PC
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1649
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [PHP] estrarre href dalla favicon

Messaggio 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
Avatar utente
progalba
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 490
Iscrizione: sabato 3 maggio 2008, 14:01
Desktop: Xfce
Distribuzione: Xubuntu 13.10 architettura 64x

Re: [PHP] estrarre href dalla favicon

Messaggio 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
Uso Ubuntu 13.10 con Unity su HP 20-2000ez all-in-one PC
Avatar utente
progalba
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 490
Iscrizione: sabato 3 maggio 2008, 14:01
Desktop: Xfce
Distribuzione: Xubuntu 13.10 architettura 64x

Re: [PHP] estrarre href dalla favicon

Messaggio 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..
Uso Ubuntu 13.10 con Unity su HP 20-2000ez all-in-one PC
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1649
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [PHP] estrarre href dalla favicon

Messaggio 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
Avatar utente
progalba
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 490
Iscrizione: sabato 3 maggio 2008, 14:01
Desktop: Xfce
Distribuzione: Xubuntu 13.10 architettura 64x

Re: [PHP] estrarre href dalla favicon

Messaggio da progalba »

mi stampa tutta la pagina, perchè carico pagine magari di altri siti, magari di ubuntu.it o google.it..
Uso Ubuntu 13.10 con Unity su HP 20-2000ez all-in-one PC
Avatar utente
progalba
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 490
Iscrizione: sabato 3 maggio 2008, 14:01
Desktop: Xfce
Distribuzione: Xubuntu 13.10 architettura 64x

Re: [PHP] estrarre href dalla favicon

Messaggio 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]";
}
Uso Ubuntu 13.10 con Unity su HP 20-2000ez all-in-one PC
Avatar utente
progalba
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 490
Iscrizione: sabato 3 maggio 2008, 14:01
Desktop: Xfce
Distribuzione: Xubuntu 13.10 architettura 64x

Re: [PHP] estrarre href dalla favicon

Messaggio 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
Uso Ubuntu 13.10 con Unity su HP 20-2000ez all-in-one PC
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1649
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [PHP] estrarre href dalla favicon

Messaggio 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.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti