Рубрика «php» - 65

В частности, сообщается, что уязвимы следующие версии: 2.7.0 — 2.7.37, 2.8.0 — 2.8.30, 3.2.0 -3.2.13, и 3.3.0 — 3.3.12. Интересный факт: в остальных версиях эти уязвимости также могут присутствовать, но исправлений для них нет (по причине того что исправления есть только в поддерживаемых версиях).

Для исправления уязвимостей необходимо обновиться до версий 2.7.38, 2.8.31, 3.2.14, 3.3.13, 3.4-BETA5, или 4.0-BETA5.

SensioLabs закрыла множественные уязвимости во всех поддерживаемых версиях Symfony - 1

И немного подробнее о самих уязвимостях:
Читать полностью »

PHP-Дайджест № 120 (1 – 19 ноября 2017) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC6, новости PHP-FIG, пара принятых RFC для PHP 7.3, порция полезных инструментов, материалы по асинхронному PHP, и многое другое.
Приятного чтения!

Читать полностью »

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

Этот раз не стал исключением и я задумал создать бота, который позволял бы с наибольшим комфортом и минимумом усилий смотреть любимые фильмы и сериалы, да еще и предоставлял контент в нескольких вариантах озвучки. Сказано — сделано. И теперь, когда железный друг человека радостно раздает пользователям их любимые шоу, я бы хотел поговорить о том, что сопутствовало созданию бота, какие проблемы вставали на моем пути и как они были решены. В первой главе я расскажу о Go глазами PHP-разработчика, во второй главе о поиске дзена для парсинга Кинопоиска, а в третьей — о недокументированной фиче Telegraph.

image
Читать полностью »

Сразу оговорю, что ничего инновационного в статье не предлагается. Я просто описываю один небольшой случай работы с чужим кодом. Опытные разработчики, пожалуй, улыбнутся, ибо наверняка с подобным сталкивались и сами, а может и еще хуже. Тех же, для кого это всё в новинку, просьба взять на заметку, как не надо оформлять свой код, уж особенно если речь идет о публичном плагине. В статье далее описывается работа с посторонним плагином для wordpress. После моих “приключений” мне очень не хочется никаким образом упоминать название плагина, поэтому в кусках исходного кода я подменил название переменных, функций, чтобы максимально исключить возможность отсылки к плагину.
Читать полностью »

Знаменитый советский и российский математик Владимир Иосифович Левенштейн (кстати, ушедший из жизни два с небольшим месяца назад) в начале второй половины прошлого века ввёл понятие дистанции редактирования, которым мы пользуемся по сей день в различных сферах — от поисковых систем до биоинформатики. В этой статье мы применим его принцип для нечёткого поиска в MySQL (поскольку MySQL на данный момент пока не предлагает встроенного решения), вычислив самый эффективный (т.е. быстрый) способ из нескольких найденных в интернете, построим алгоритм такого поиска и реализуем его на PHP.

гугл понимает нас

Читать полностью »

Я уверен, что много разработчиков сталкивались с проблемой когда надо максимально быстро воспроизводить огромные видео файлы (4 GB+) на Вашем сайте. Я тоже люблю посмотреть фильмы в онлайн но мне так надоедает ждать, когда он про грузится перед просмотром.

Столкнулся с интересной проблемой а именно с video stream в браузере Internet Explorer 11 который все так обожают. Теперь перейдем к деталям.

Продукт написан на Laravel 5.3, а для транскодирувания видео файла мы используем ffmpeg (создание preview, thumbnail нужных нам размеров, качества + watermark).

Первое на что надо обратить внимание — это атомы. Видео состоит с атомов, в которых храниться информация об субтитрах, главах, видео и аудио и тд… Но особое внимание надо обратить на moov атом. В нем храниться информация как воспроизвести видео, сколько кадров в секунду, какие размеры. Этот атом может лежать где угодно. Если видео маленькое, оно быстро загрузится, в результате уже есть moov атом и система знает как воспроизвести видео.

Но а как же быть если у нас огромные видео файлы? Нужно настроить video stream (потоковую передачу видео файла).
Простыми словами работа происходит так, система делает первый запрос и получает начало видео файла и пытается там найти moov атом, если его нет — делает второй запрос с конца. В конце концов moov атом найден и происходит третий запрос на получение нужного кусочка видео файла для того что бы воспроизвести видео.
Читать полностью »

Во всём виноват PHP OPCache? - 1

Когда я начинал карьеру разработчика, то очень удивился, прочитав фразу, которую приписывают Филу Карлтону (Phil Karlton): «В информатике есть лишь две сложности: инвалидация кеша и присвоение имён». Я отнёсся к этому недоверчиво, поскольку не понял сути фразы. Но немного позже я начал понимать.

Я хочу рассказать о проблеме, с которой мы столкнулись не так давно в нашей production-инфраструктуре. Сразу после успешного развёртывания при обновлении страниц, изменённых новым релизом, какое-то время не отображался новый код. Вообще-то такое далеко не редкость для веб-приложений, написанных на PHP. Мы сталкивались с подобным и раньше, а после перехода на новую production-среду проблема стала заметнее. Поэтому мы решили заняться расследованием.

Читать полностью »

Анонс митапа ThinkPHP #15 в Харькове - 1
Приглашаем всех на уже пятнадцатую встречу ThinkPHP-сообщества! Актуальные темы, насыщенные доклады, оживленные кофе-брейки — идеальная атмосфера для того, чтобы поговорить о тенденциях современной веб-разработки и круто провести пятницу.
Читать полностью »

Недавно мне довелось выполнить один маленький и интересный заказ Его суть заключалась в том, чтобы по нажатию кнопки с удалённого сервера БД скопировать БД (её приблизительный размер составляет почти 800Mb) на тестовый сервер и после выполнить ряд изменений в структурах таблиц.

Казалось бы, что нет ничего проще берём выполняем на удалённом сервере запрос вида:

mysqldump -uLogin -pPassword db_name > db_name.sql

и забрать потом файл, но в моём случае это оказался сервер БД без возможности выкачать оттуда файл, поэтому мне пришлось изловчиться и написать свой механизм экспорта из этой удалённой БД средствами YII2, с которым я был на тот момент не так сильно знаком.

Читать полностью »

В этой статье я расскажу, как можно оперативно настроить автоматическое стягивание нового кода на тестовый сервер вашего laravel-приложения, автозапуск тестов и оповещение о результате в соответствующий корпоративный чат. А также отлавливание новых ошибок в laravel.log
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js