Метка «PHP» - 23

Из-за того, что в PHP при сравнении строк оператор "==" пытается сначала преобразовать их в числа [1][2] (даже, если оба операнда — строки), результат порой может оказаться неожиданным:

<?php
var_dump('123' == '       123'); // true
var_dump('1e3' == '1000'); // true
var_dump('+74951112233' == '74951112233'); // true
var_dump('00000020' == '0000000000000000020'); // true
var_dump('0X1D' == '29E0'); // true
var_dump('0xafebac' == '11529132'); // true
var_dump('0xafebac' == '0XAFEBAC'); // true
var_dump('0xeb' == '+235e-0'); // true
var_dump('0.235' == '+.235'); // true
var_dump('0.2e-10' == '2.0E-11'); // true
var_dump('61529519452809720693702583126814' == '61529519452809720000000000000000'); // true в php < 5.4.4

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

Тихим, теплым, вечером разрабатывая систему кэширования через memcached и добавляя сервер меня вдруг посетила мысль.
Как я нашел уязвимость на phpclub.ru

С чего все начиналось

А все началось с того, что я перешел с Debian семейства к семейству RHEL. Примерно неделю назад я первый раз своими руками(не могу сказать что на Ubuntu это было своими руками) поднял сервер для разработки проекта. Я своими руками правил конфиги nginx, apache, php — раньше на Ubuntu все ставилось в пару команд и работало само. Впрочем, правя конфиги, я стал лучше понимать, как оно там все работает. Наверное это меня и подтолкнуло к мысли о memcached.

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

У многих рано или поздно возникает необходимость в обеспечении мультиязычности своих веб-приложений. Не будем сегодня прибегать к обзору всего разнообразия возможных решений, а остановимся на довольно узконаправленном сравнении обеспечения мультиязычности при помощи пакета Zend_Translate и библиотеки Gettext.

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

Хочу поделиться решением одной нетривиальной задачи. Было необходимо организовать удобный доступ к беспроводной сети в офисе организации. Сеть предоставляет доступ только к public internet, с корпоративной сетью ничто не связывает — полностью изолированная система. Единственный общий компонент — пользователи. Для упрощения процесса решено аутентификацию делать на уровне Layer 3 — то есть сеть открытая, после подключения надо вводить пароль для доступа к интернету (Cisco WLC Web Auth).
В принципе все просто, заводятся учетные записи на каждого пользователя, и все готово. Но, ввиду дефицита хелпдеск персонала, заниматься созданием логинов и, тем более, выдачей паролей персоналу было некому. Была поставлена задача использовать один из существующих источников аутентификации, что в стандартной ситуации сделать достаточно просто: например для MS Active Directory можно использовать NPS в качестве радиус сервера, на LDAP же можно подключаться напрямую).
В нашем случае было и то, и другое (AD для сети и LDAP для доступа к корпоративному интранету ), но из WiFi сегмента туда не было вообще никакого доступа. Максимум что нам смогли дать, это тестовые AD акаунт и акаунт для интранета. Сели, подумали… и вот что придумали
Читать полностью »

Хочу поделиться методом определения «похожих» записей. Думаю, будет полезно для блогов или новостных ресурсов.
Цель данного поста показать принцип, имплементация может быть не совсем комильфо, так как автор не проф. программист, а любитель.
«Новости по теме» с помощью PHP, phpmorphy и MySQL
Читать полностью »

Счастливый билет
В рамках небольшого тестового задания потребовалось реализовать старую и известную задачу с поиском количества счастливых билетов (указанной пользователем разрядности номера). Как ни странно, при большом числе источников с математическим описанием алгоритма, реальных примеров реализации оптимизированного варианта (без перебора) оказалось немного, но всё же большой проблемы эта часть задания не составила.

Во второй же части потребовалось уже выводить сами номера, и вот тут быстрый поиск в сети ожидаемого результата не дал. Однако, задача решена, и хотелось бы поделиться реализаций с читателим ради получения критического мнения и распространения информации для тех, кому подобные или схожие алгоритмы могут понадобиться.
Читать полностью »

    Наворотили моделей, конфигурацию, и еще кучу завязанной на фреймворк бизнес-логики на вашем сайте, а потом вдруг оказалось, что нужно добавить несколько скриптов, которые бы запускались по крону для решения тяжелых задач? Давайте попробуем сделать так чтобы весь этот функционал, в т.ч. контроллеры, можно было запускать из консольного скрипта. Данный способ представляет из себя компромисс между практичностью и гипертрофированным чувством прекрасного, свойственным архитектуре Symfony в целом.Читать полностью »

image

Система MajorDoMo объединяет в себе различные компоненты, действие многих из которых сопряжено с чтением либо изменением данных. Для организации эффективного обмена данными между частями системы была создана объектная модель. Данная модель во многом соответствует парадигме Объектно Ориентированного Программирования (ООП) и людям, знакомых с данной парадигмой, не составит труда разобраться в имеющейся модели. Однако, знание принципов ООП совсем не обязательно, т.к. встроенная в систему модель достаточно упрощённая и может применяться без глубокого знания какого-либо языка программирования или же в качестве первого шага обучения этой концепции. В статье описаны основные составляющие этой модели.
Читать полностью »

Небольшое вступление

Не так давно я решил для себя, что пора восполнить большой пробел в знаниях и решил прочитать про переходы между версиями PHP, т.к. понимал, что остался где-то между 5.2 и 5.3 и этот пробел необходимо как-то устранить. До этого я читал про namespaces, traits и т.д, но дальше чтения не уходило. И вот тут я заметил генераторы, почитал документацию, одну из статей на хабре на этот счет и после этого возникла мысль — а как раньше без них жили-то?

Данным переводом хочу помочь хотя бы новичкам, поскольку на php.net документация по генераторам на английском и, на мой взгляд, должным образом не раскрывает всю идею и места применения. Текста много, кода чуть меньше, картинок нет. Потребуются общие знания, например, про итераторы. Очевидный код комментировать не буду, а вот сложные для понимания примеры постараюсь объяснить в силу своих знаний.
Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №23 (29.07.2013 — 11.08.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »


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