Web-мастеру и не только
Полезные решения для Web-мастеров
Web-мастеру и не только - RSS-канал
Web-мастеру и не только - Карта сайта
CSS: текст, зачеркнутый линией другого цвета
10.03.2013 | Категория: Web-мастеру и не только | Автор: ManHunter
Несколько вариантов реализации на CSS простенького эффекта выделения текста - зачеркивание его линией другого цвета. Когда-то передо мной встала такая задача, я с ней успешно справился. Потом решил поэкспериментировать и добиться этого же эффекта, но другими способами. Вот что у меня получилось. Общая суть всех примеров в том, что создается контейнер с перечеркивающей линией одного цвета, а в нем содержится текст другого цвета.Первый вариант, которым и была решена задача, - использование HTML-тега <s> или <strike>. Оба этих тега поддерживаются всеми браузерами, но с HTML 4.01 strike считается устаревшим, а в HTML5 вообще упразднен. Тем не менее, такой вариант имеет место быть.
Code (HTML) : Убрать нумерацию
- <style type="text/css">
- .fixed_text_1 {
- color:#FF0000; /* цвет зачеркивающей линии */
- }
- .fixed_text_1 span {
- color:#000000; /* цвет зачеркиваемого текста */
- }
- </style>
- <s class="fixed_text_1"><span>Исправленному</span></s> верить
- <strike class="fixed_text_1"><span>Исправленному</span></strike> верить
Читать статью целиком »
Просмотров: 21065 | Комментариев: 2
Подсветка результатов поиска на странице
05.02.2013 | Категория: Web-мастеру и не только | Автор: ManHunter
Сложно представить современный web-сайт без поиска. И хорошим тоном считается не просто выводить все страницы, на которых был найден запрошенный результат, но и как-нибудь выделять искомые слова в тексте. Если контент сайта представляет собой обычный текст без html-разметки, то тут все просто, достаточно использовать что-то типа str_replace. А как быть, если на странице имеются html-теги, и надо выделить только тот текст, который не заключен внутри тегов? Например, нам надо выделить слово "поиск" в такой тестовой строке:Code (HTML) : Убрать нумерацию
- Для поиска и просмотра <a href="/search" title="Результаты поиска">результатов
- поиска</a> пройдите по поисковой ссылке.
Code (HTML) : Убрать нумерацию
- Для <b>поиск</b>а и просмотра <a href="/search" title="Результаты <b>поиск</b>а">
- результатов <b>поиск</b>а</a> пройдите по <b>поиск</b>овой ссылке.
Code (PHP) : Убрать нумерацию
- // Искомая строка для подсветки на странице
- $search = 'html';
- // Создаем строку для регулярного выражения
- $pattern = "/((?:^|>)[^<]*)(".$search.")/si";
- // Подсвеченная строка
- $replace = '$1<b style="color:#FF0000; background:#FFFF00;">$2</b>';
- // Заменяем
- $html = preg_replace($pattern, $replace, $html);
Читать статью целиком »
Просмотров: 12243 | Комментариев: 7
Удаленное управление питанием сервера через Rack PDU
15.12.2012 | Категория: Web-мастеру и не только | Автор: ManHunter
Удаленное управление питанием сервера через Rack PDU
Когда-то по работе возникла необходимость автоматизированного управления серверами в стойке дата-центра. Вопрос с контролем за питанием был решен через power-свич (Switched Rack PDU), который имел возможность удаленного управления по telnet. Для эмуляции действий пользователя я написал вот такой небольшой класс на PHP. Может быть пригодится кому-нибудь еще.
Читать статью целиком »
Просмотров: 5218 | Комментариев: 0
Оценка качества изображения для печати
15.10.2012 | Категория: Web-мастеру и не только | Автор: ManHunter
Оценка качества изображения для печати
Качество изображения измеряется в количествах пикселей (точек) на дюйм (1 дюйм = 25.4 мм), единица измерения - dpi (Dots Per Inch). К типографской печати обычно принимаются изображения не менее 150 dpi, а вот для фотопечати качество должно быть уже 300 dpi и больше. Однако, при оценке качества изображения обязательно надо учитывать и размер печати. К примеру, исходный файл из цифромыльницы с разрешением 1200х900 пикселов будет неплохо смотреться на фотокарточке 10х15 см, но для печати на плакате его качества будет недостаточно. А кадры с Nikon D800 разрешением 7360х4912 пикселов можно без проблем распечатать на формате A1 и повесить на стенку.
Для вычисления dpi надо желаемые размеры печати перевести в дюймы, а затем поделить разрешение исходного файла на эти значения по ширине и высоте. Полученные значения dpi и будут искомым результатом оценки качества изображения. Осталось оформить это все вот в такую несложную функцию:
Code (PHP) : Убрать нумерацию
- // Функция для расчета dpi изображения
- function get_dpi($picture, $print_x, $print_y) {
- if (file_exists($picture)) {
- list ($x,$y)=GetImageSize($picture);
- if ($x && $y && $print_x && $print_y) {
- // "Повернуть" изображение под размер печати
- if ($print_x<$print_y) {
- if ($x>$y) {
- list ($x,$y)=array($y,$x);
- }
- }
- // Посчитать dpi по ширине и высоте
- $dpi=array(
- 'dpi_x'=>intval($x/($print_x/2.54)),
- 'dpi_y'=>intval($y/($print_y/2.54))
- );
- return $dpi;
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
- }
Читать статью целиком »
Просмотров: 6641 | Комментариев: 2
Определение мобильных браузеров с помощью .htaccess
09.09.2012 | Категория: Web-мастеру и не только | Автор: ManHunter
Недавно я разбирался с одним инфицированным сайтом. При заходе на него обычным браузером все было нормально, но при заходе с мобильных устройств, смартфонов и планшетников, пользователя автоматически перебрасывало на говносайт с троянами. Трояны у меня никаких эмоций не вызывают, а вот определение мобильных устройств было сделано очень интересно - через инфицированный файл .htaccess в корневом каталоге сайта. Я уже приводил пример определения мобильных браузеров на PHP, давайте посмотрим, как определение мобильных браузеров сделано в этом случае. В конец файла .htaccess был дописан следующий блок:Code: Убрать нумерацию
- <ifModule mod_rewrite.c>
- RewriteEngine on
- # Проверить строку UserAgent браузера
- RewriteCond %{HTTP_USER_AGENT} acs [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} alav [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} alca [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} amoi [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} audi [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} aste [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} avan [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} benq [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} bird [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} blac [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} blaz [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} brew [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} cell [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} cldc [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} cmd- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} dang [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} doco [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} eric [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} hipt [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} inno [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ipaq [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} java [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} jigs [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} kddi [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} keji [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} leno [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} lg-c [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} lg-d [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} lg-g [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} lge- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} maui [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} maxo [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mits [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mmef [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mobi [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mot- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} moto [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mwbp [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} nec- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} newt [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} noki [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} opwv [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} palm [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} pana [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} pant [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} pdxg [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} phil [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} play [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} pluc [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} port [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} prox [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} qtek [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} qwap [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sage [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sams [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sany [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sch- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sec- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} send [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} seri [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sgh- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} shar [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sie- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} siem [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} smal [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} smar [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sony [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} sph- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} symb [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} t-mo [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} teli [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} tim- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} tosh [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} tsm- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} upg1 [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} upsi [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} vk-v [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} voda [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} w3cs [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} wap- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} wapa [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} wapi [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} wapp [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} wapr [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} webc [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} xda [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} xda- [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} up.browser [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} up.link [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} windows.ce [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} iemobile [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mini [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mmp [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} symbian [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} wap [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} phone [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ipad [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} iphone [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} iPad [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ipod [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} iPod [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} pocket [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} mobile [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} android [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} Android [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} pda [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} PPC [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} Series60 [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} Opera.Mini [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} Moby [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} Mobi [NC,OR]
- # Проверить служебные заголовки, отсылаемые браузером
- RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml" [NC,OR]
- RewriteCond %{HTTP_ACCEPT} "application/vnd.wap.xhtml+xml" [NC,OR]
- # Проверить исключения
- RewriteCond %{HTTP_USER_AGENT} !windows.nt [NC]
- RewriteCond %{HTTP_USER_AGENT} !bsd [NC]
- RewriteCond %{HTTP_USER_AGENT} !x11 [NC]
- RewriteCond %{HTTP_USER_AGENT} !unix [NC]
- RewriteCond %{HTTP_USER_AGENT} !macos [NC]
- RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
- RewriteCond %{HTTP_USER_AGENT} !playstation [NC]
- RewriteCond %{HTTP_USER_AGENT} !google [NC]
- RewriteCond %{HTTP_USER_AGENT} !yandex [NC]
- RewriteCond %{HTTP_USER_AGENT} !bot [NC]
- RewriteCond %{HTTP_USER_AGENT} !libwww [NC]
- RewriteCond %{HTTP_USER_AGENT} !msn [NC]
- RewriteCond %{HTTP_USER_AGENT} !america [NC]
- RewriteCond %{HTTP_USER_AGENT} !avant [NC]
- RewriteCond %{HTTP_USER_AGENT} !download [NC]
- RewriteCond %{HTTP_USER_AGENT} !fdm [NC]
- RewriteCond %{HTTP_USER_AGENT} !maui [NC]
- RewriteCond %{HTTP_USER_AGENT} !webmoney [NC]
- RewriteCond %{HTTP_USER_AGENT} !windows-media-player [NC]
- # При выполнении условий переадресация на мобильную версию сайта
- RewriteRule ^(.*)$ http://mobile.version.of.site.ru [L,R=302]
- </ifModule>
Читать статью целиком »
Просмотров: 11013 | Комментариев: 10