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

Существует несколько кодировок символов кириллицы.

При создании сайтов в Интернете обычно используют:

  • utf-8
  • windows-1251
  • koi8-r

Еще популярные кодировки:

  • iso-8859-5
  • ibm866
  • mac-cyrillic

Вероятно это не весь список, это те кодировки с которыми я часто сталкиваюсь.

Иногда появляется необходимость определить кодировку текста. И в PHP даже функция для этого есть:

mb_detect_encoding

но как писал m00t
в статье Определение кодировки текста в PHP — обзор существующих решений плюс еще один велосипед

Если кратко — он не работает.

Прочитав статьи m00t я не вдохновился его методом и нашел вот такое решение: Определение кодировки текста в PHP и Python
Как сказал m00t

опять коды символов

Я протестировал функцию определения кодировки по кодам символов, результат меня удовлетворил и я использовал эту функцию пару лет.

Недавно решил переписать проект где использовал эту функцию, нашел готовый пакет на packagist.org cnpait/detect_encoding, в котором кодировка определяется методом m00t

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

Мне бы установить этот пакет и успокоиться, но я решил «заморочиться».
Читать полностью »

В PHP 7.4 появится FFI, т.е. можно подключать библиотеки на языке C (или, например, Rust) напрямую, без необходимости писать целый extension и разбираться в его многочисленных нюансах.

Давайте попробуем написать код на Rust, и используем его PHP-программе

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

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

Конференцию PHP Central Europe отменили из-за того, что среди выступающих не оказалось женщин - 1
Читать полностью »

Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как были когда-то давным-давно написаны, в таком состоянии пребывают и до сих пор, получая лишь крохотные изменения ради увеличения циферки в версии.

Несмотря на это, презентации новых версий битрикса пестрят красивыми заголовками и стараются поддерживать у потенциальных клиентов иллюзию развития, обещая скорость, надёжность и главное безопасность, подтверждённую старым сертификатом ФСТЭК

Почему 1С-Битрикс с 1 декабря 2019 года может превратиться в тыкву - 1

Но есть нюансы

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

Ха, какая изящная маскировка Service Locator-а под DI. Даже может показаться, что это DI! :-)

Это первый коммент к моей предыдущей публикации "Dependency Injection, JavaScript и ES6-модули". Спасибо коллеге symbix 'у за этот коммент, т.к. именно он стало причиной погружения в тонкости отличия одного от другого. Под катом мой ответ на вопрос в заголовке.

image

(КДПВ особого смысла не имеет и предназначена в первую очередь для визуального опознания этой публикации в ряду других)

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

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

Пример гипотезы:

Функции strpos легко передать аргументы в неправильном порядке. 

Но есть вероятность, что даже на нескольких миллионах строк кода подобная диагностика не "выстрелит", поэтому на неудачные гипотезы тратить много времени не хочется.

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

Ищем баги в PHP коде без статических анализаторов - 1

Под катом:

  • Поиск и разбор багов в open source проектах.
  • Quick start по phpgrep.
  • Принцип работы синтаксического поиска.

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

PHP-Дайджест № 163 (12 – 26 августа 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 beta 4, о судьбе P++, видео, подкасты, анонсы митапов и конференций, порция полезных инструментов, и многое другое.

Приятного чтения!

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

image

В данной статье мы разберемся с эксплуатацией некоторых WEB-узвимостей на примере прохождения варгейма Natas. Каждый уровень имеет доступ к паролю следующего уровня. Все пароли также хранятся в файлах /etc/natas_webpass/. Например, пароль для natas5 хранится в файле /etc/natas_webpass/natas5 и доступен для чтения только для пользователей natas4 и natas5.

Прошлые части: часть 1, часть 2 и часть 3.
Читать полностью »

Всем привет!

Я Павел Мурзаков, тимлид серверной команды Badoo. Мы обожаем PHP, вкладываемся в его развитие и развитие сообщества вокруг него. 21 сентября планируем провести третий Badoo PHP Meetup. Приглашаем спикеров и гостей!
21 сентября Badoo PHP Meetup #3: производительность - 1
В этот раз в качестве общей темы встречи выбрали производительность PHP-кода и PHP-бэкенда в целом. Для нас эта область важна, так как, с одной стороны, у нас большая инфраструктура на PHP, и вопрос производительности — это вопрос экономии денег.  С другой — нам важно предоставлять пользователям сервис высокого качества, поэтому бэкенд должен отвечать достаточно быстро, ведь от этого зависит активность пользователей и их впечатления от сервиса.

На митапе хотим обсудить, как решают подобные вопросы в разных компаниях, а именно: как следить за производительностью, профилировать и локализовывать проблемы, когда и что стоит оптимизировать и как это делать.

Регистрация по ссылке, начало в 12:00, гостей встречаем с 11:00. 
Читать полностью »

image

В данной статье мы разберемся с эксплуатацией некоторых WEB-узвимостей на примере прохождения варгейма Natas. Каждый уровень имеет доступ к паролю следующего уровня. Все пароли также хранятся в файлах /etc/natas_webpass/. Например, пароль для natas5 хранится в файле /etc/natas_webpass/natas5 и доступен для чтения только для пользователей natas4 и natas5.

Прошлые части: часть 1 и часть 2.
Читать полностью »


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