Precedente Post:
Originalmente inviato da
dapeco
Umm... sta diventando una questione di principio... Mi puoi indicare il servizio su cui vuoi che appai il tuo favicon? Il tuo script è corretto e l' htaccess (benché pachidermico) funzionante.
Il servizio riguarda parecchi blog che frequento i quali usano il plugin favatar (mette la favicon come fosse un miniavatar accanto al nick).
Alla fine se riuscissi a mostrare la favicon.png sarebbe già un buon passo avanti in quanto potrei tramite htaccess girare le richieste da favicon.ico a favicon.png
Originalmente inviato da
dapeco
Conta che php non può gestire i file .ico (la cui specifica che non ricordo male è brevettata MS).
Ok per le ico ma... perchè non va ugualmente anche la png
http://www.fuoridalgregge.it/test/fav.html
Penso che se si risolve questo poi il resto sarà "semplice".
@dapeco:
spero mi perdonerai il "doppio post", volevo solo informarti che forse ci sono riuscito!
Allora: il plugin in questione (http://dev.wp-plugins.org/browser/fa...php?format=txt)
contiene tra le altre queste righe:
Codice PHP:
function getFavicon($url) {
// start by fetching the contents of the URL they left...
if( $html = @file_get_contents($url) ) {
if (preg_match('/<link[^>]+rel="(?:shortcut )?icon"[^>]+?href="([^"]+?)"/si', $html, $matches)) {
// Attempt to grab a favicon link from their webpage url
$linkUrl = html_entity_decode($matches[1]);
if (substr($linkUrl, 0, 1) == '/') {
$urlParts = parse_url($url);
$faviconURL = $urlParts['scheme'].'://'.$urlParts['host'].$linkUrl;
} else if (substr($linkUrl, 0, 7) == 'http://') {
$faviconURL = $linkUrl;
} else if (substr($url, -1, 1) == '/') {
$faviconURL = $url.$linkUrl;
} else {
$faviconURL = $url.'/'.$linkUrl;
}
} else {
// If unsuccessful, attempt to "guess" the favicon location
$urlParts = parse_url($url);
$faviconURL = $urlParts['scheme'].'://'.$urlParts['host'].'/favicon.ico';
}
// Run a test to see if what we have attempted to get actually exists.
if( $faviconURL_exists = url_validate($faviconURL) )
return $faviconURL;
}
// Finally, if we haven't 'returned' yet then there is nothing to see here.
return false;
}
ora essendo io ignorantone in php (ma sto imparando) vedevo "solo" la ricerca di favicon.ico e mi fossilizzavo su quello
Adesso ho notato le righe:
Codice PHP:
if (preg_match('/<link[^>]+rel="(?:shortcut )?icon"[^>]+?href="([^"]+?)"/si', $html, $matches)) {
e cercando di capirne il significato sono arrivato alla conclusione che "cerca" tra le righe del sorgente della pagina linkata (che poi sarebbe il mio sito) riferimenti al favicon e se li trova prende quello come riferimento per linkare la favicon sul blog dove si posta.
Quindi m'è venuta l'idea di inserire nell'head della home questa riga "commentata" (tanto per non interferire con la vera favicon.ico) prima della "vera" favicon.ico:
Codice PHP:
<!-- <link rel="icon" href="/_altervista_ht/favicon.png" type="image/png" /> -->
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
e da alcuni test fatti in locale sembra funzionare alla grande
-
Grazie mille per il tempo dedicatomi