Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

PHP: Как получить расширение файла по его номеру

PHP
В PHP номер формата изображения (константы типа IMAGETYPE_*) можно преобразовать в соответствующее расширение файла с помощью массива, связывающего номера с расширениями. Приведу простой и удобный способ, как это сделать.

Пример:
// Массив, связывающий номера форматов с соответствующими расширениями
$extensions = [
    IMAGETYPE_GIF   => 'gif',
    IMAGETYPE_JPEG  => 'jpg',
    IMAGETYPE_PNG   => 'png',
    IMAGETYPE_SWF   => 'swf',
    IMAGETYPE_PSD   => 'psd',
    IMAGETYPE_BMP   => 'bmp',
    IMAGETYPE_TIFF_II => 'tif',
    IMAGETYPE_TIFF_MM => 'tif',
    IMAGETYPE_JPC   => 'jpc',
    IMAGETYPE_JP2   => 'jp2',
    IMAGETYPE_JPX   => 'jpx',
    IMAGETYPE_JB2   => 'jb2',
    IMAGETYPE_SWC   => 'swc',
    IMAGETYPE_IFF   => 'iff',
    IMAGETYPE_WBMP  => 'wbmp',
    IMAGETYPE_XBM   => 'xbm',
    IMAGETYPE_ICO   => 'ico',
    IMAGETYPE_WEBP  => 'webp'
];

// Пример использования
$imageInfo = getimagesize('image.png');
$extension =
...

PHP: Преобразование изображений GIF, JPG, JPEG и PNG в формат WEBP

WEBP — это формат изображений, разработанный компанией Google, который отличается небольшим размером файлов и качественным сохранением исходных данных. Переход на WEBP позволяет ускорить загрузку веб-страниц и сэкономить трафик. В этой статье мы рассмотрим, как с помощью PHP реализовать конвертацию изображений из популярных форматов (GIF, JPG, JPEG, PNG) в формат WEBP.



Почему стоит использовать WEBP?


Преимуществом формата WEBP является значительное уменьшение объёма изображений без существенной потери качества. Благодаря этому сайты загружаются быстрее, а мобильные пользователи экономят трафик. WEBP поддерживается большинством современных браузеров, включая Chrome, Opera, Firefox и Edge.

Требования и подготовка среды


Прежде чем приступить к преобразованию, убедитесь, что на вашем сервере установлено расширение GD Library для PHP, которое предоставляет функции для работы с графикой. Большинство современных дистрибутивов PHP уже содержат это расширение, но если оно отсутствует, установите...

Nginx: Как закомментировать сразу несколько строк?

В Nginx-командах не поддерживается мультистрочный комментарий, как это принято в языках программирования вроде JavaScript или Python. Каждую строку нужно комментировать отдельно символом # в начале строки.

Пример:
Допустим, у вас есть следующий блок:
location /api {
    proxy_pass http://backend-api;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

Чтобы закомментировать его целиком, ставьте символ # перед каждой строкой:
# location /api {
#     proxy_pass http://backend-api;
#     proxy_set_header Host $host;
#     proxy_set_header X-Real-IP $remote_addr;
# }

Альтернативный способ (Быстрое выделение)


Если вы работаете в редакторе с поддержкой выделения текста (например, vim, VSCode, Sublime Text), вы можете выделить нужный блок и автоматически добавить символ комментария к началу каждой строки. Это удобно и быстро.

Итог:
Комментарии в Nginx всегда однострочные, и каждая строка должна быть отмечена символом #....

Nginx: map

В мире веб-разработки каждая деталь имеет значение. Один неверный параметр или неправильно сконфигурированный модуль могут серьёзно снизить производительность и вызвать неудобства у пользователей. Одной из уникальных возможностей Nginx является модуль map, позволяющий динамически изменять переменные в зависимости от условий. Сегодня мы детально рассмотрим, что это за модуль, зачем он нужен и как его использовать на практике.

Что такое модуль map?


Модуль map — это особый компонент Nginx, предназначенный для динамического формирования переменных на основании определённых критериев. Например, можно создать условия, при которых переменная изменяется в зависимости от содержимого заголовка запроса, URL или даже IP-адреса клиента.

Основное назначение модуля — создание динамических связей между параметрами запроса и поведением сервера. Это открывает широкие возможности для оптимизации производительности, обеспечения безопасности и персонализации выдачи контента.

Принцип работы модуля map


Работа м...

Nginx vs Apache: Сравнение подходов и производительности

Современные веб-проекты требуют мощных, надежных и быстрых технологий для обслуживания миллионов пользователей ежедневно. Среди наиболее востребованных решений выделяются Nginx и Apache — два легендарных веб-сервера, обладающие уникальными характеристиками и преимуществами. Каждый из них имеет сильные и слабые стороны, зависящие от поставленных задач. Давайте сравним эти два продукта по нескольким важным критериям.

История и архитектура



Nginx
Разработанный российским программистом Игорем Сысоевым в 2002 году, Nginx изначально задумывался как эффективное средство борьбы с проблемой C10K (одновременная обработка 10 тысяч соединений). Nginx построен вокруг концепции асинхронной неблокирующей архитектуры, что позволило достичь высокого уровня производительности и масштабируемости.

Apache
Появившийся в середине 1990-х годов, Apache долгое время доминировал на рынке веб-серверов. Он основан на традиционной блокирующей архитектуре с возможностью использования многопоточности или...