Web-мастеру и не только
Полезные решения для Web-мастеров
Web-мастеру и не только - RSS-канал
Web-мастеру и не только - Карта сайта
Как на PHP корректно прибавить месяц к дате
27.11.2015 | Категория: Web-мастеру и не только | Автор: ManHunter
Как на PHP корректно прибавить месяц к дате
Одна из интересных задач, с которой мне приходилось сталкиваться на практике при работе с датами на PHP, это так называемый "календарный месяц". То есть некий интервал дат, отличающийся на месяц. Если дата находится где-то в середине или в начале месяца, то никаких сложностей, просто увеличиваем номер месяца на единицу, при необходимости корректируем год. А проблема начинается в тех случаях, когда дата начала интервала приходится на какое-нибудь число в конце месяца. Просто увеличить значение месяца на следующий, оставив число без изменений, нельзя, полученная дата может оказаться несуществующей. Добавлять 30 или 31 день тоже некорректно, в коротком феврале итоговая дата после такого прибавления перемахнет на начало марта. Вот для наглядности несколько примеров, чтобы было понятно, о чем идет речь:
Code (PHP) : Убрать нумерацию
- //------------------------------------------------------
- // Дата в начале или в середине месяца
- //------------------------------------------------------
- echo date('d.m.Y',strtotime('2015-01-12 +1 month'));
- // 12.02.2015 - правильно
- //------------------------------------------------------
- // Дата в конце месяца
- //------------------------------------------------------
- echo date('d.m.Y',strtotime('2015-01-29 +1 month'));
- // 01.03.2015 - неправильно! Ожидалось 28.02.2015
- echo date('d.m.Y',strtotime('2015-01-31 +1 month'));
- // 03.03.2015 - неправильно! Ожидалось 28.02.2015
- echo date('d.m.Y',strtotime('2015-11-30 +1 month'));
- // 30.12.2015 - неправильно! Ожидалось 31.12.2015
Читать статью целиком »
Просмотров: 16883 | Комментариев: 6
Запрет просмотра сайта во фрейме
21.10.2015 | Категория: Web-мастеру и не только | Автор: ManHunter
Возвращаясь к теме защиты контента сайта, нужно упомянуть еще защиту от просмотра сайта во фрейме другого сайта. Кроме того, что никто не сможет таким способом использовать ваш контент, в какой-то мере это поможет защититься от DDoS-атак, когда на сайте с большой посещаемостью ставится скрытый iframe со ссылкой на атакуемый сайт. Посещая основной сайт, пользователи помимо своей воли открывают также и сайт-жертву, создавая огромную нагрузку на него. Такие инциденты уже неоднократно происходили. В этой статье я попытался собрать различные способы защиты сайтов от открытия во фрейме и различные способы их преодоления.Первый способ защиты основан на скриптах JavaScript. Его суть сводится к тому, что проверяется соответствие top-окна открытой странице, если они не совпадают, значит страница открыта во фрейме. При обнаружении такой несправедливости браузер перенаправляется на другую страницу. Я использую вот такой вариант скрипта для "побега" из фрейма:
Code: Убрать нумерацию
- // Frame-Killer #1
- if (top!=self) { top.location.href='/'; }
Code: Убрать нумерацию
- // Frame-Killer #2
- if (top.location!=location) { top.location.href=location.href; }
Code: Убрать нумерацию
- // Frame-Killer #3
- if (window.parent.frames.length>0) {
- // Mozilla, Opera, Chrome...
- if (window.stop!=undefined) {
- window.stop();
- }
- // для Internet Explorer
- else if (document.execCommand!=undefined) {
- document.execCommand("Stop", false);
- }
- }
Code (HTML) : Убрать нумерацию
- <iframe src="http://your_site" sandbox=""></iframe>
Читать статью целиком »
Просмотров: 12475 | Комментариев: 18
Как добавить комментарии в JSON
11.10.2015 | Категория: Web-мастеру и не только | Автор: ManHunter
Как добавить комментарии в JSON
Как-то по работе пришлось столкнуться с сервисом, в котором использовались файлы конфигурации в формате JSON. Они включали в себя много разных параметров с абсолютно неинформативными названиями ключей. Естественно, первая мысль была прокомментировать каждое поле, так как их приходилось периодически редактировать, а вносить изменения в исходную систему не представлялось возможным.
Но, как оказалось, формат JSON не поддерживает комментарии (Douglas Crockford - создатель JSON, если что), а PHP, придерживаясь стандарта, при попытке декодировать файл с комментариями возвращает пустые данные. Вот для наглядности два простейших примера, как это (не) работает:
Code (PHP) : Убрать нумерацию
- $a='{
- "one":1, /* first number */
- "two":2 /* second number */
- }';
- print_r(json_decode($a));
- // Пусто :(
Code (PHP) : Убрать нумерацию
- $a='{
- "one":1, // first number
- "two":2 // second number
- }';
- print_r(json_decode($a));
- // Пусто :(
Читать статью целиком »
Просмотров: 17456 | Комментариев: 6
Парсер EXIF на JavaScript
09.08.2015 | Категория: Web-мастеру и не только | Автор: ManHunter
Парсер EXIF на JavaScript
JavaScript уже давно перестал быть языком, используемым только для визуальных эффектов и манипуляции контентом на web-страничках. Теперь это полноценный язык программирования, на котором написаны целые приложения, работающие как на стороне клиента, так и на стороне сервера. В качестве еще одной демонстрации практически безграничных возможностей JavaScript, предлагаю вашему вниманию полноценный парсер EXIF-данных из JPEG-файлов, написанный на чистом JavaScript и работающий исключительно в браузере, без загрузки изображений на сервер.
Читать статью целиком »
Просмотров: 7033 | Комментариев: 7
Определение координат места съемки из EXIF на PHP
08.07.2015 | Категория: Web-мастеру и не только | Автор: ManHunter
Определение координат места съемки из EXIF на PHP
Окончательно решив аппаратную задачу записи GPS-координат в файлы, осталось решить программную задачу их чтения. Вариант на Ассемблере у меня уже давно есть, а вот на PHP нормальных решений не было. Причину, по которой я не пользуюсь штатными функциями PHP, я изложил в предыдущей статье, повторяться не буду. К тому же мне стало интересно самостоятельно распарсить дополнительные секции EXIF, основываясь на их спецификации.
Читать статью целиком »
Просмотров: 5749 | Комментариев: 1