Статьи из категории "PHP":


PHP 7.2 — баг в системе Opcache.
PHP

В одном из своих проектов обнаружил странную ошибку: could not obtain parameters for parsing in Unknown on line 0 Как выяснилось позже, это баг в системе Opcache, который оставался незамеченным на протяжении аж 12-ти релизов PHP 7.2.0 — 7.2.11. О чем был отправлен bug report, ошибку тут же пофиксили, начиная с версии 7.2.12 ее уже […]

OpenCart. Создаем расширение для установки через админку.
PHP

В прошлый раз мы учились создавать форму «обратный звонок» вручную, путем прямого исправления и добавления необходимых файлов для OpenCart 2. Хотя этот метод хорош для понимания структуры CMS и относительно прост, — он достаточно варварский. И, строго говоря, так действовать крайне нежелательно, ввиду отсутствия какого-либо контроля из админки и сложностей с обратимостью изменений. Скачать готовое […]

OpenCart. Плавающая форма обратной связи через AJAX.
JavaScript, PHP, Разное

Небольшой, но подробный туториал для начинающих разработчиков. Возникла потребность в плавающей, выдвигающейся сбоку форме обратной связи (обратный звонок). К сожалению, готового решения я так и не нашел, кроме громоздкого, через модуль vqmod. Его суть заключается в перезаписи файлов OpenCart на лету, этакий своеобразный прокси-компонент, или декоратор, если угодно. Идея, конечно, интересная, но не об этом […]

Отправляем почту, чтобы она не попадала в спам

Для того, чтобы грамотно обеспечивать рассылки посетителям Вашего сайта, необходимо принять ряд мер. Кроме правильного содержания письма, в котором нежелательны ссылки на внешние ресурсы и прикрепленные файлы (в том числе изображения), следует побеспокоиться о грамотной настройке SPF и DKIM. Тем более, за их отсутствие принимающий почтовый сервер очень сильно «штрафует». Об этом и поговорим. Настройка […]

Запуск PHP скриптов в фоновом режиме

Когда проект растет, появляются ресурсоемкие задачи обработки данных. Например, разбор xlsx (эксель) прайса для обновления цен, или ресайз большой фотографии. Случаи могут быть самыми разнообразными, когда мы не хотим, чтобы пользователь ждал, пока наш скрипт отработает. В данном посте расскажу, как можно запускать фоновое выполнение PHP скриптов. Следует отметить, что без использования VPS (Virtual Private […]

PHP. Рисуем простую капчу.
PHP

Здравствуйте дорогие друзья! Сегодня кое-что о защите сайта от роботов. На сегодняшний день наиболее эффективным способом остается использование картинки, которую предлагается «распознать» и напечатать результат в соответствующем поле. То есть закрыть действие на капчу. Самая распространенная ситуация: защитить от спам-роботов комментарии, или регистрацию на вашем сайте. Ну, поскольку сайты чаще всего строятся на PHP, то […]

PHP. Новая библиотека для работы с изображениями
PHP

Представляю новую версию библиотеки imgresize! Скачать и попробовать! Класс написан на PHP и является оберткой для GD. Перед использованием убедитесь, что ваша инсталляция PHP поддерживает GDlib. А та, в свою очередь, необходимые форматы изображений. Обычно PNG, JPEG (JPG) и GIF. Со времен публикации предыдущей статьи уже много воды утекло. Библиотека стала более «взрослой» и обзавелась […]

PHP. Наложение ватермарков (ватермарок, watermarks) на фотографии.
PHP

Нередко возникает необходимость защитить фотографии на сайте от воровства. Особенно популярно в различных каталогах и т.д. Самый простой и надежный способ — наложение так называемых ватермарков. Создается картинка, размерами MxN с прозрачным фоном и полупрозрачной надписью с именем домена. Сохраняется в формате PNG-24. Вся штука кроется в библиотеке GD при наложении друг на друга картинок. […]

Шаблон фабрика, как способ разделения прав пользователей
PHP

В проектах, где требуется разделить права пользователей по ролям, можно использовать шаблон проектирования фабрика (fabric). Данная статья поможет разобраться каким именно образом. Допустим есть простой URI роутер: В index файле инициализируем следующим образом: $path=dirname(__FILE__); require_once($path . ‘/lib/router/routeurl.php’); require_once($path . ‘/lib/PageError.php’);   $routeurl = new routeURL(); //Создаем объект роутера $routeurl->enableFabric(); //Указываем использовать фабричный паттерн   try […]

PHP. Разбиение на страницы
PHP

Если вы занимаетесь разработкой интернет магазинов, каталогов, досок объявлений — то наверняка сталкивались с проблемой постраничного вывода информации. Проще говоря с пагинацией. Представленная ниже функция помогает решить эту задачу. В данной реализации используется враппер MySQLi под названием goDB. Но вы без труда сможете переделать под собственные нужды, главное понимать принцип работы. Он очень простой: передаем […]

PHP. CounterStrike (CS) информер.
PHP

Всем доброго времени суток! Забирать статистику с Counter Strike 1.6 (CS) сервера всегда интересно. Узнать текущую карту, количество игроков и другую полезную информацию. Подобных сайтов в Интернете развелось великое множество, но большинство из них обновляет информацию медленно. Виной всему громоздкие библиотеки. Да, они работают не только с CS серверами но и с множеством других игр. […]

URL/URI Router
PHP

Всем хорошего настроения! Данная статья поможет понять что такое роутер. Сразу скажу: она НЕ рассчитана для новичков, как и большинство материалов данного ресурса. Если вы имеете опыт программирования на PHP и хотите до конца разобраться что же такое роутер и какое отношение он имеет к ЧПУ — эта статья для Вас! Мы с вами создадим […]

PHP. Цепочки вызовов (Method Chaining)
PHP

Предисловие Статья рассчитана на пользователей, хорошо знакомых с объектно-ориентированным программированием. Сейчас я расскажу о новой полезной возможности, которая была введена с ветки 5 в качестве развития ООП в PHP (по сравнению с веткой 4). Она называется «цепочки вызовов» (Method Chaining) и выглядит следующим образом: $object->method_a()->method_b()->method_c(); Что же здесь на самом деле происходит? Начнем с того, […]

PHP. Генератор календаря с подсветкой событий.
PHP

В одном из моих проектов, понадобилось создать календарь событий (в частности дней рождения). Идея очень простая: нарисовать календарик и подсветить ячейку, если этот день является днем рождения одного или нескольких человек. Постановка задачи: 1. Сгенерировать матрицу для календаря. Разработать механизм подсветки ячеек. 2. Передать числа дней рождения массивом в качестве первого параметра; месяц в качестве […]

PHP. Рисуем круговые диаграммы.
PHP

Частенько нужно построить диаграмму для оценки тех или иных количественных параметров. В этом нам поможет библиотека GD и ее PHP API. Нижеследующий класс строит простенькую круговую диаграмму. Пример использования: <?php include('dia.php'); $instance = new dia(); $data=array('3aad00'=>120, 'f10d0d'=>20, '280df1'=>70, 'dd0ee5'=>45, '000000'=>10); $instance->generate($data); Как видно из примера, передаем методу generate ассоциативный массив, где ключ — цвет. Минимальный […]

Ресайз картинок (фотографий) на PHP
PHP

Недавно возникла необходимость изменять размер фотографий (да и вообще картинок) средствами PHP. Покопавшись в интернете, нашел небольшую библиотеку. Но у нее обнаружился ряд недостатков, а именно: 1. Если делать из большой фотографии маленькую — сильно страдает качество (нет экстраполяции) 2. Нет разворота по EXIF. Если загружать прямо с фотоаппарата, без предварительной обработки, вертикальные снимки становятся […]