Category Archives: PHP

Обновление версии PHP для сайта на WordPress

Устаревшая версия PHP

WorpPress использует в качестве серверного языка программирования язык PHP.

При очередном входе в панель управления появилось уведомление «Ваш сайт работает на устаревшей версии PHP (7.4.33), которая не получает обновлений безопасности. Её следует обновить.»

При использовании хостинга Beget входим в панель управления и переходим в раздел «Сайты».

Сайты на хостинге

В списке сайтов находим тот, для которого требуется обновление версии PHP и нажимаем кнопку настройки параметров сайта.

Переход к настройкам сайта

В настройках выбираем пункт «Версия PHP» и выбираем требуемую версию PHP. В yнашем случае это версия 8.4.

Обновление версии PHP

Обзор веб-разработки: ключевые направления и современные технологии

Веб-разработка объединяет создание и поддержку сайтов с использованием современных технологий и инструментов.

С начала 1990-х годов веб-разработка прошла путь от первых браузеров до сложных веб-приложений с использованием разнообразных технологий и архитектур.

Основные фреймворки

Фронтенд-разработка управляет интерфейсом пользователя, используя React, Angular и Vue — популярные фреймворки, позволяющие создавать интерактивные SPA и гибкие приложения.

Технологический стек и методологии

HTML5, CSS3 и JavaScript вместе с инструментами Webpack и Babel обеспечивают современный процесс разработки, где SASS и BEM помогают масштабировать стили для удобства поддержки.

Бэкенд-разработка: архитектуры и языки программирования

1.Бэкенд отвечает за логику приложений и работу с данными, применяя Node.js, Python, PHP, Java и другие языки для построения надежных серверных решений.

2.Переход к микросервисной архитектуре облегчает масштабирование, а REST API и GraphQL обеспечивают гибкое взаимодействие с клиентской частью и улучшенную поддержку безопасности.

Распределение использования языков программирования в веб-разработке (2025)

JavaScript занимает доминирующее положение благодаря широкому применению в фронтенде и бэкенде, охватывая 65% рынка веб-разработки.

Python демонстрирует устойчивый рост, становится популярным в серверных приложениях и автоматизации, а PHP сохраняет значимость в проектах с CMS и корпоративных решениях.

Популярные фреймворки и библиотеки в веб-разработке

Выбор технологий зависит от конкретных задач проекта, командных навыков и инфраструктуры.

Выбор технологий зависит от конкретных задач проекта, командных навыков и инфраструктуры.

Аналитика рынка веб-разработки, 2025

Тенденции и вызовы современной веб-разработки

Веб-разработка развивается под влиянием технологий ИИ, автоматизации и увеличения требований к безопасности и производительности.Комплексный подход помогает сохранять баланс между инновациями и стабильностью приложений.

ТенденцияВзрывРешение
ИИ и автоматизацияКибербезопасностьШифрование, аудит
Рост PWA и мобильностьВысокая нагрузкаОптимизация, масштабирование
МикросервисыСовместимостьТестирование, стандарты
Обзор отраслевых исследований, 2025

Рост популярности прогрессивных веб-приложений (PWA) с 2018 по 2025

PWA обеспечивают улучшенное офлайн-взаимодействие и быструю загрузку, способствуя росту вовлечённости пользователей.

Рост числа проектов подтверждает эффективность PWA в электронной коммерции и корпоративном сегменте.

Данные Google и Microsoft, 2025

Ключевые перспективы и советы в веб-разработке

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

Искажение символов на PHP-сайте

В одном из проектов пришлось столкнуться со следующей задачей: в конце строки использовался символ кириллицы русская буква «г» с предшествующим пробелом. Нужно было скриптом удалить ее.

Попробовал использовать следующий код:

$stroka=trim($stroka,’ г’);

Все прекрасно работало, пока сайт не переехал на кодировку UTF-8 (ранее использовалась Windows-1251)

После смены кодировки выяснилась одна особенность работы функции trim в php: эта функция не поддерживает кодировку и просто просматривает отдельные байты. Если отправлять вторым аргументом символы кириллицы закодированной в UTF-8, то в строке будут искаться байты в соответствии с кодировкой, с чем trim справляется не совсем корректно, попутно удаляя лишние байты, приводя к искажению некоторых символов на сайте, например, в рассматриваемом случае всегда происходило искажение первого символа в строке и вместо него выводился символ �.

Результат поисков решения привел к отказу от использования функции trim, благо, функционал php довольно разнообразен. Рассмотрев варианты было принято решение использовать замену регулярными выражениями:

$stroka=preg_replace('/ г$/u', '',$stroka']);
Code language: PHP (php)

После проведенной замены искажение символов перестало происходить.

Создание Telrgram-бота

Бот для телеграмм — это специальный аккаунт, который может отправлять сообщения без участия человека.

Для создания бота воспользуемся ботом  @BotFather 

Бот @BotFather для создания бота Telegram
Бот @BotFather для создания бота Telegram

Нажимаем старт и получаем ответ:

Первый шаг создания бота Telegramm
Первый ответ бота создания бота

Будем создавать бота по расчету IP-адресов.

Нажимаем /newbot, появляется сообщение с предложением ввести имя бота пробуем ipAddrCalc.

В ответ приходит сообщение «Good. Now let’s choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.»

На этом шаге нужно ввести имя аккаунта, которое будет у отображаться у бота.

Задание имени бота

Используем calc_bot, однако, получаем ответ, что такое имя уже используется, необходимо указать другое. Будем использовать ipAddrCalc_bot

Получение токена бота

По сообщению понимаем, что новый бот создан и доступен по ссылке: http://t.me/ipAddrCalc_bot

В этом же ответе указан токен для доступа к HTTP API (на скриншоте он закрашен красненьким).

Токен можно проверить перейдя по ссылке: https://api.telegram.org/bot<token>/getMe конечно, не забываем изменить <token> на реальный токен, полученный на этапе создания бота.

в ответ должно прийти что-то похожее:

{"ok":true,"result":{"id":*********,"is_bot":true,"first_name":"ipAddrCalc","username":"ipAddrCalc_bot","can_join_groups":true,"can_read_all_group_messages":false,"supports_inline_queries":false}}

Для работы с HTTP API будем использовать хостинг с PHP.

I can help you create and manage Telegram bots. If you’re new to the Bot API, please see the manual.

You can control me by sending these commands:

/newbot — create a new bot
/mybots — edit your bots [beta]

Edit Bots
/setname — change a bot’s name
/setdescription — change bot description
/setabouttext — change bot about info
/setuserpic — change bot profile photo
/setcommands — change the list of commands
/deletebot — delete a bot

Bot Settings
/token — generate authorization token
/revoke — revoke bot access token
/setinline — toggle inline mode
/setinlinegeo — toggle inline location requests
/setinlinefeedback — change inline feedback settings
/setjoingroups — can your bot be added to groups?
/setprivacy — toggle privacy mode in groups

Games
/mygames — edit your games[beta]
/newgame — create a new game
/listgames — get a list of your games
/editgame — edit a game
/deletegame — delete an existing game

Следующим шагом настройки бота будет установка вебхука. Файл по указанному URL будет отвечать за обработку взаимодействия с ботом. Настроить вебхук можно используя обычный браузер. Достаточно перейти по адресу https://api.telegram.org/<token>/setwebhook?url=<url>. Важный момент: вебхук должен работать по защищенному протоколу https.

Регистрация вебхука
Регистрация вебхука

Если в результате выполнения вернется JSON содержащий

{«ok»:true,»result»:true,»description»:»Webhook was set»}

значит все прошло успешно, и бот готов к работе.

Далее займемся созданием обработчика.

Русские имена файлов в setRequestHeader

Загрузка файлов через браузер поддерживается объектом XMLHttpRequest().

Для отправки имени файла используется фрагмент кода:

'Content-Disposition: form-data; name='+(fieldName || 'file')+'; filename=' + fileName + '\r\n';
Code language: JavaScript (javascript)

Если этим способом загружать на сервер файлы с символами кириллицы (как впрочем любых других кодировок не соответствующих рекомендациям) то имена файлов будут искажены, точнее те символы, которые не поддерживаются объектом.
Обойти это можно используя функцию encodeURIComponent():

'Content-Disposition: form-data; name='+(fieldName || 'file')+'; filename=' + encodeURIComponent(fileName) + '\r\n';
Code language: JavaScript (javascript)

Для обратного кодирования в бакенде необходимо использовать функцию urldecode():

$showFileName=urldecode($_FILES['fieldName']['name']);
Code language: PHP (php)

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.