[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярка для favicon
panacea
Пример.

<link {href может находится и тут} rel="shortcut icon" {или тут} type="image/x-icon" href="http://www.site.ru/fileadmin/template/images/Favicon.png">

Может href быть и без http а просто /favicon.ico и все. Тут надо будет потом подставить урку без заднего слеша в начало строки.

Помогите написать регулярку для извлечения адреса из под href.

для preg_match();



Спустя 18 минут, 56 секунд (8.05.2011 - 08:46) alex12060 написал(а):
Ваши идеи?

Спустя 3 часа, 42 минуты, 40 секунд (8.05.2011 - 12:28) lioness написал(а):
непонятно что должно получиться, какой кусок вы хотите вытянуть

Спустя 8 часов, 51 минута, 33 секунды (8.05.2011 - 21:20) panacea написал(а):
Цитата (lioness @ 8.05.2011 - 13:28)
непонятно что должно получиться, какой кусок вы хотите вытянуть

Я хочу получтить полный путь к иконке и все. Вот думаю как?

Спустя 2 минуты, 28 секунд (8.05.2011 - 21:22) Игорь_Vasinsky написал(а):
а где хот попытки ваши? или полный ппц с регулярками?

Спустя 22 минуты, 43 секунды (8.05.2011 - 21:45) panacea написал(а):
Ой, мне стыдно позорится своими знаниями регулярок.
Ну вот мои попытки:
preg_match( "'<link[[:print:]]href=["|'](.*?)["|'].*?>'is", $page_text, $dt );
preg_match("/<link(.*)href=.(.*).ico(.*)>/i",$page_text,$dt);
Но это не работает.

Спустя 56 минут, 51 секунда (8.05.2011 - 22:42) lioness написал(а):
preg_match_all('<link.*href="(.*?)">', $text, $matches);

Спустя 10 часов, 33 минуты, 49 секунд (9.05.2011 - 09:16) panacea написал(а):
Цитата (lioness @ 8.05.2011 - 23:42)
preg_match_all('<link.*href="(.*?)">', $text, $matches);

Спасибо. Но зачем мне они все. Вон на одном сайте их сколько (mmk.ru)
<link href="/bitrix/js/main/core/css/core.css?1298703342" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/bitrix/menu/mmt_horizontal_multilevel/style.css?1288618044" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/bitrix/news.list/main_slide/style.css?1289209747" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/bitrix/system.pagenavigation/.default/style.css?1288606269" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/adv/news.list/main_tab_list3/style.css?1299138991" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/adv/news.list/main_tab_list/style.css?1288773544" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/bitrix/menu/horizontal_service_menu/style.css?1288691364 " type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/bitrix/news.list/main_promo_block/style.css?1289203887" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/.default/components/bitrix/menu/horizontal_bottom_menu/style.css?1288681827& quot; type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/mmk/styles.css?1302604803" type="text/css" rel="stylesheet" />
<link
href="/bitrix/templates/mmk/template_styles.css?1302604815" type="text/css" rel="stylesheet" />

Правда и фавикона не видно на этом сайте. Хотя иконка есть. Видно в стилях как-то спрятали.

Спустя 18 минут, 56 секунд (9.05.2011 - 09:35) inpost написал(а):
panacea
rel=
type=
добавь в регулярку.

Спустя 3 часа, 28 минут, 1 секунда (9.05.2011 - 13:03) panacea написал(а):
Мне кажется, наверное правильнее будет сделать за 2 итерации это дейсвтие
preg_match('#(<link.*image/x-icon\W.*>)#Ui', $page, $m)) # сначала ищем иконку
preg_match('#href=(.+)\s#Ui', $m[1], $m)) # затем href

Спустя 2 дня, 6 часов, 53 минуты, 6 секунд (11.05.2011 - 19:56) panacea написал(а):
Ребят сталкнулся с такой проблемой.
Значит код такой:
        if (preg_match('#(<link.*?icon\W.*?>)#is', $page, $m)) {
if (preg_match('#href=["\'](.+?)["\'].*?#is', $m[1], $m)) {
$raw_favicon_url = trim(str_replace(array('\'', '"'), '', $m[1])); # удаляем кавычки;


Но!
фигня получается если будет в документе несколько <link href...
А такое бывает часто с объявлением стилей и иконок.
Как выделить только линк иконки?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.