Мне надо отобразить иконку с сайта если она есть, если нету изображение по умолчанию
извлекать надо из путей site.ru/favicon.ico
favicon.png
favicon.gif
favicon.jpg
например как это сделано в http://wotop.ru
Как это сделать?
Хз о чем ты, но фавиконки делаются так
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
$url = "http://xwab.mobi/favicon.ico";
if (@fopen($url, "r")) {
echo '<img src="'. $url .'" />';
} else {
echo 'стандартный файл';
}
добавлено спустя 32 секунды:
Вариант 2:
$url = "http://xwab.mobi/favicon.ico";
$Headers = @get_headers($url);
if(strpos($Headers[0], "200")) {
echo '<img src="'. $url .'" />';
} else {
echo 'стандартный файл';
}
добавлено спустя 1 минуту:
Как пройтись по всем возможным вариантам нахождения фавиконок, думаю, хватит фантазии
Chizh, так будет работать
$url= "http://xwab.mobi/favicon.ico";
$url2= "http://xwab.mobi/favicon.png";
$url3= "http://xwab.mobi/favicon.gif";
if (@fopen($url, "r")) {
echo '<img src="'. $url .'" />';
} else {
(@fopen($url2, "r");
} else {(@fopen($url3, "r"); }
else {echo 'стандартный файл';}
блин вообще забыл php надо на досге подучить все позабывал, подскажи ну ты меня понял. как то break еще делается
assassindev,
# забить в массив и пройтись форичем?
$url = "http://xwab.mobi/";
$arrIco = array('favicon.ico', 'favicon.png', 'favicon.gif');
#favicon.ico по очевидным причинам лучше поместить в начале массива, дабы не гонять цикл вхолостую в большинстве случаев
$src = 'стандартный файл'; # default
foreach($arrIco as $ico){
if (@fopen($url . $ico, "r")) {
$src = '<img src="'. $url . $ico .'" />';
break; #файл найден, завершаем цикл
}
}
echo $src;
_________________________
Ты, видимо, пытаешься предложить конструкцию elseif.
if(проверка файла 1){}
elseif(проверка файла 2){}
elseif(проверка файла 3){}
else{стандартный файл}
Chizh, Спасибо за ответ, да именно elseif хотел так сделать, так ведь прокатит?
28 Дек 2016, 0:17Если извратится, можно вообще это дело на клиентскую сторону переложить.
<img onerror="this.src = 'адрес по умолчанию'" src="сайт.ру/favicon.ico">
У тега img есть событие onerror которое срабатывает если произошла ошибка, и в таком случае мы ставим дефолтную картинку. Если все ок, то загрузится фавиконка с сайта.
Пример: https://jsfiddle.net/p3qqs6bv/
Кстати, таким же методом проверяют залогинен пользователь в какой то соц. сети или нет без его ведома. Ссылаются на картинку которая может быть видна только авторизованным пользователям, если она загрузилась - значит юзер залогинен, если сработал onerror то наоборот.