Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2012, 17:53   #1
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию Парсинг

Доброго времени суток. Помогите с регулярным выражение для парсинга favicon. Задача то вроде бы простенькая. Только вот способов задания favicona не один.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 03.03.2012, 17:59   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ищите где находиться первая строка с *.ico а потом вроде substr можно вытянуть
Кольша вне форума Ответить с цитированием
Старый 04.03.2012, 13:36   #3
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

А если иконка в png. Что не исключено. Нужно регулярное выражение
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 04.03.2012, 13:58   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ну смотрите прорверяем позицию strpos'ом если она равно 0 или больше примерного местоположения тогда проверяем png я б помог с кодом,но сейчас занят уроки мать их
Кольша вне форума Ответить с цитированием
Старый 04.03.2012, 14:57   #5
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Вот он
Код:
<?
$url = "http://google.com.ua";
if(substr($url, strlen($url)-1,strlen($url))=="/") // если в конце адреса есть слеш удаляем его.
	$url = substr($url,0,strlen($url)-1);
$content = file_get_contents($url);
preg_match('/\<link.*?href=(\'|\")(.*?.ico)(\'|\")/is', $content, $out);
$favicon_url = $url.$out[2];
if(empty($out[2])) // если не нашли в тегах ищем в корне сайта
{
	$favicon_url = $url."/favicon.ico";
}
// конечно это не все случаи но в большенстве все будет работать
echo "<img src=\"".$favicon_url."\">";
?>
Может кому-то пригодится.
Конечно скорость скрипта хреновая. Но можно читать не весь сайт. А до определенного символа
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 05.03.2012, 11:53   #6
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

вот
Код:
$favicon_url = $url."/favicon.ico";
это строка не нравиться потому что ведь ссылка может быть и такая /*.ico тоесть без имени сайта впереди и называеться хоть как

Последний раз редактировалось Кольша; 05.03.2012 в 15:08.
Кольша вне форума Ответить с цитированием
Старый 05.03.2012, 22:51   #7
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Блин вообще. Для говнокодеров(не про тебя) да может такое быть. А даже начинающий программист проверить что бы строчка $url не была пуста, а ещё лучше проверит урл регуляркой.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 06.03.2012, 01:32   #8
Bustle
Interdicted
Участник клуба
 
Аватар для Bustle
 
Регистрация: 25.11.2010
Сообщений: 1,194
По умолчанию

Код:
preg_match('#<[a|link].*href\s*=\s*[\'\"/](.*)[\'\">]#isU');
Love writing code and I am really passionate about it
Bustle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсинг Pein95 Работа с сетью в Delphi 4 01.12.2011 02:06
парсинг Pein95 C# (си шарп) 3 16.09.2011 01:24
Парсинг. igor90 Microsoft Office Excel 1 03.11.2010 02:41