Хмм...не сталкивался с тач айконами в нете. А вдруг за ними будущее? Анализ в каком месте кода лучше делать?
И еще нашел несколько волшебных сайтов. Фавиконовских линков не видно на них. Хотя иконка на месте. Видно в стилях как-то спрятали. (i.e mmk.ru's favicon)
Я ничего не придумал кроме как такого
try { $page = get($url); if (preg_match('#(<link.*icon\W.*?>)#Ui', $page, $m)) { if (preg_match('#href=(.+)\s#Ui', $m[1], $m)) { $raw_favicon_url = trim(str_replace(array('\'', '"'), '', $m[1])); # удаляем кавычки if (strpos($raw_favicon_url, 'http://') === 0) { $favicon_url = $raw_favicon_url; } else { $favicon_url = sprintf('http://%s/%s', $host, $raw_favicon_url); } } } else { $favicon_url = "http://www.google.com/s2/favicons?domain='.$host.'"; # для дюже спрятанных } # проверочка на картинность $page = get($favicon_url); if (preg_match("#Content-Type: ([^\"';\s]+);?#is", $page, $m)) { if (preg_match('#image(.+)\s#Ui', $m[1], $m)) { echo "картинка"; }else{echo "неведомы зверушки";} }
Так али как?
дополнительные поля читай в мануалах движка. Для тегов стоит чуток изменить код.
<?php function get($url) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true # прочие параметры плюс обработка 30x ответов, если включена open_basedir, и нужно ходить по редиректам )); if (!($res = curl_exec($ch))) { curl_close($ch); throw new Exception(sprintf("%s", @curl_error($ch))); } curl_close($ch); return $res; } $urls = array_map('trim', file($argv[1])); foreach ($urls as $url) { echo "Crawling [$url]: "; $favicon_url = sprintf('%s/favicon.ico', $url); # default $host = parse_url($favicon_url, PHP_URL_HOST); try { $page = get($url); if (preg_match('#(<link.*image/x-icon\W.*>)#Ui', $page, $m)) { if (preg_match('#href=(.+)\s#Ui', $m[1], $m)) { $raw_favicon_url = trim(str_replace(array('\'', '"'), '', $m[1])); # удаляем кавычки if (strpos($raw_favicon_url, 'http://') === 0) { $favicon_url = $raw_favicon_url; } else { $favicon_url = sprintf('http://%s/favicon.ico', $host, $raw_favicon_url); } } } file_put_contents($argv[2] . "/$host.ico", get($favicon_url)); echo "[OK]\n"; } catch (Exception $e) { printf("Got error while processing: %s\n", $e->getMessage()); continue; } } ?>
http://google.ru/ http://yandex.ru http://unexisteeeeddomain.com http://mail.ru/ https://searchengines.guru/
Спасибо тебе огромное.
я тоже смотрел в сторону курлов.
А если иконка в .png будет как в примере выше. А мы ее в .ico запишем
file_put_contents($argv[2] . "/$host.ico", get($favicon_url));
Это нормально будет? Проканает? Или надо и расширение выделять и сохранять?
За последний месяц замечаю активные телодвижения яндекса. Или просто меня отряхнули от песка?
Страниц в поиске было до 10, а тут вдруг задернули до тысячи. Я, как непривычный - в недоумении.
Наверное трояном слизали wcx_ftp.ini в тотале. Не сохраняйте пароли, лучше сразу скажите их мне. ))
Ну вы даете! Весь ваш сайт у них в руках. Поздравляю! Как можно пароли сохранять где либо?
Лень и жадность убьет человечество, это точно.
можно еще поменять называния get команд и значений переменных do в engine.php и названия ключевых файлов. Иногда помогает уход от стандартов. ))
http://dle-news.ru/tips/1164-zaschita-papok-skripta-ot-zapuska-storonnih-skriptov.html
Спасибо всем за многочисленные ответы, постараюсь вникнуть.
Начал переговоры с хостером. Он говорит, что не даст больше 200 писем в час отправлять. А у меня база многотысячная. Как быть? Очередь отправки у него не предусмотрена. Придется как-то изворачиваться самому. Выбирать каждую минуту не более 3 мыла. Так стопорится бизнес. Все в этой стране через...постель.
А так сразу не проще?
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
Хотя вопрос немного не про это чуток. Я спрашивал про смысл всего этого. Ведь в DLE уже присоединяется ajax библиотека может там есть подобные функции и мне не надо будет траффик гонять лишний раз. Вот про что я.