JavaScript: Что такое javascript:void(0)?

javascript:void(0) — это синтаксическая конструкция, которую традиционно использовали в атрибуте href HTML‑ссылок для предотвращения перехода по умолчанию.

Пример:
<a href="javascript:void(0)" onclick="doSomething()">Кликни меня</a>

При клике браузер выполняет JavaScript‑код, но void(0) возвращает undefined, что принудительно отменяет навигацию (переход на другую страницу).

Как это работает на практике


  1. Браузер видит href="javascript:..." и интерпретирует содержимое как JS‑код.
  2. void(0) вычисляется в undefined.
  3. Поскольку возвращаемое значение не является валидным URL, переход блокируется.

Почему этот подход считается устаревшим


Несмотря на работоспособность, javascript:void(0) имеет критические недостатки:

Проблемы с доступностью (a11y)
  • Скринридеры озвучивают javascript:void(0) как текст ссылки, создавая путаницу.
  • Клавиатурная навигация (Tab) работает некорректно.
  • Нарушается принцип семантической разметки.

SEO‑риски
  • Поисковые роботы игнорируют ссылки с javascript:.
  • Может расцениватьс
...

PHP: Как определить поворот изображения с помощью exif_read_data()

Что такое EXIF и зачем он нужен


EXIF (Exchangeable Image File Format) — это стандарт, позволяющий добавлять к изображениям и другим файлам метаданные: информацию о камере, настройках съёмки, дате, геолокации и ориентации снимка.

Эти данные записываются камерой или смартфоном при создании фото и могут быть прочитаны специальными инструментами, в том числе PHP‑функцией exif_read_data().

Как EXIF хранит информацию о повороте


Ключевой параметр для определения поворота — поле Orientation (ориентация). Оно принимает значения от 1 до 8, каждое из которых описывает определённое положение камеры при съёмке:
  • 1: нормальное положение (0°);
  • 3: повёрнуто на 180°;
  • 6: повёрнуто на 90° по часовой стрелке;
  • 8: повёрнуто на 90° против часовой стрелки.

Остальные значения (2, 4, 5, 7) описывают зеркальные повороты, которые встречаются реже.

Практический пример на PHP
Шаг 1. Чтение EXIF‑данных
Используйте функцию exif_read_data(), чтобы получить метаданные изображения:
$exifData =
...

PHP: Функция setcookie()

Функция setcookie() в PHP предназначена для отправки cookie-данных клиенту. Cookie — это небольшие кусочки информации, которые хранятся на стороне клиента и отправляются обратно серверу при каждом последующем запросе. Это позволяет сохранять состояние пользователя между запросами.

Синтаксис функции setcookie():
setcookie(name, value, expire, path, domain, secure, httponly)

Параметры:
  • name: Имя cookie.
  • value: Значение cookie.
  • expire: Время истечения срока действия cookie (timestamp Unix).
  • path: Путь на сервере, к которому относятся cookie.
  • domain: Домен, к которому относятся cookie.
  • secure: Отправлять cookie только через зашифрованное соединение (HTTPS).
  • httponly: Заблокировать доступ к cookie через JavaScript.

Примеры использования



Установка простого cookie
setcookie("username", "John", time() + 3600, "/");

Установка безопасного cookie
setcookie("auth_token", "secret-token", time() + 3600, "/", ".example.com", true, true);

Удаление cookie
setcookie("
...

PHP: Регулярные выражения: Расширенные возможности

Расширенные возможности регулярных выражений в PHP позволяют решать более сложные задачи, такие как обработка текста, очистка данных и защита от уязвимостей. Рассмотрим некоторые из этих возможностей.

Захват групп и обратные ссылки


Захват групп: Группы позволяют извлекать определенные фрагменты текста:
preg_match('/(\d+) (\w+)/', '123 apples', $matches);
// $matches[1] => '123', $matches[2] => 'apples'

Обратные ссылки: Обратные ссылки позволяют использовать захваченные группы в замене:
preg_replace('/(\w+) (\w+)/', '$2, $1', 'John Doe');
// Результат: 'Doe, John'

Утверждения (Lookahead и Lookbehind)


Positive Lookahead: Проверяет, что после текущего положения есть определенный паттерн:
preg_match('/apple(?= pie)/', 'I love apple pie'); // Вернет true

Negative Lookahead: Проверяет, что после текущего положения нет определенного паттерна:
preg_match('/apple(?! pie)/', 'I love apple juice'); // Вернет true

Positive Lookbehind: Проверяет, что...

PHP: Высокая производительность и оптимизация памяти

PHP
Достижение высокой производительности и оптимальной работы с памятью — одна из ключевых задач разработчика на PHP. В условиях роста нагрузки и объема данных эффективное использование ресурсов становится критически важным фактором успеха проекта. Давайте рассмотрим некоторые лучшие практики и приемы для достижения максимальной производительности и экономии памяти в PHP-приложениях.

Высокопроизводительность и оптимизация памяти в PHP



1. Использование Opcode Cache (OPCache)
Один из важнейших шагов к повышению производительности — включение и правильная настройка OPCache. Этот механизм сохраняет скомпилированный байткод PHP, предотвращая повторную компиляцию каждого файла при каждом запросе.

Советы по настройке OPCache:
  • Включайте и настраивайте OPCache через конфигурационные файлы (opcache.enable=1, opcache.memory_consumption=128, opcache.max_accelerated_files=10000).
  • Регулярно очищайте кэш, если вносите значительные изменения в кодовую базу.

2. Эффективная работа с ресурсами
В зависимости от...