Подготовка к Zend сертификации : Строки и и регулярные выражения

  • PHP
  • 3 года назад
  • 3/3
  • выделяются одинарными или двойными кавычками
  • двойные кавычки применяются в случае парсинга переменных или использования специальных символов (\n). На скорость обработки данных не влияет
  • strlen($string) - возвращает длину строки, а именно количество байт, а не символов
  • str_word_count($string, $format, $charlist) - возвращает количество слов, $format (0 - возврат количества слов, 1 - массив из всех слов, 2 - ассоциативный массив, где в качестве ключей - положение в строке (индекс)), $charlist - список символов, из которых может состоять слово (то есть 3 - слово fri3nd будет посчитано).
  • count_chars($string, 1) - считает количество вхождений символов, 1 - режим, возвращает массив со всеми символами (0 - возвращает символы, не входящие в строку).
  • soundex($string) // высчитывает soundex ключ строки (строка длинной в 4 символа, начинающаяся с буквы), для поиска по произношению, например, soundex(“Euler”) == soundex(“Ellery”); // E460
  • metaphone($string, $phonemes) - высчитывает metaphone ключ для строки (является более точным сравнением чем soundex(), так как в ней учитываются правила произношения в английском языке, сгенерированные ключи разной длины), $phonemes ограничивает список возвращаемых символов.
  • trim($string, $optional_char_list) - убирает пробелы из начала и окончания строки (space/tab/newline); если задан $optional_char_list, то указанные символы так же удаляются.
  • ltrim($string, $optional_char_list) - удаляет пробелы из начала строки.
  • rtrim($string, $optional_char_list) - аналог chop(), удаляет пробелы с конца строки.
Читать далее...

Как создать таблицы в MySQL и MariaDB на сервере Ubuntu

MySQL и MariaDB две наиболее распространенные СУБД, использующие язык запросов SQL. Довольно большое число приложений для Ubuntu в той или иной степени используют MySQL или MariaDB, чтобы хранить свои данные.

В этой статье мы рассмотрим как создавать таблицы для MySQL и MariaDB. Все примеры, приведенные ниже, проверялись на сервере Ubuntu 12.04 VPS, но они должны работать на любой машине с установленной системой Ubuntu.

Читать далее...

Как базовые шаблоны помогают понять принцип работы контроллеров

  • PHP
  • 3 года назад

Пол М. Джонс однажды завёл интересное обсуждение на тему применения шаблона MVC в веб, основные моменты которой он описал в статье Action-Domain-Responder. Предлагаю вам познакомиться с ней, после чего вы всегда сможете вернуться и прочитать эту статью.

Хочу отметить, что я почти полностью разделяю мнение автора и, более того, я смог даже внести свою лепту при общении с Полом. Но всегда оставался один момент, на счет которого я имел свою точку зрения, и, наконец, я собрался с мыслями и решил изложить её. Контроллеры - действия в ADR - можно описать при помощи шаблона проектирования фасад.

Читать далее...

Сравниваем AngularJS и EmberJS

В своей недавней статье мы сравнивали AngularJS с React и выделили отличия между двумя фреймворками. На этот раз рассмотрим EmberJS фреймворк, который отвечает за все “тяжелые” операции в веб-разработке. Ниже познакомимся с его историей, примерами использования, а так же сравним его с AngularJS в разрезе возможностей и функционала.

EmberJS - это фреймворк для языка JavaScript, который изначально назывался SproutCore. В декабре 2011 года его решили переименовать в EmberJS для того, чтобы разделить виджет библиотеку SproutCore 1.0 и сам фреймворк. Роль главного разработчика EmberJS сыграл Yehuda Katz, который так же известен своим участием в разработке jQuery, Rails и SproutCore.

Читать далее...

Сравнение AngularJS и React

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

Читать далее...

Все, что необходимо знать о HTTP2

Протокол передачи гипертекста, известный как HTTP, с 1999 года лежит в основе обмена данными в сети.

Совсем недавно Инженерный Совет Интернета (IETF) объявил о готовности HTTP2. Это будет первое обновление протокола за 16 лет. Об этом заявил Марк Ноттингем, глава рабочей группы IETF HTTP, во вторник.

Как только протокол HTTP2 пройдет все согласования в IETF, он будет опубликован и станет главным протоколом Web. Так что же это означает для пользователей?

Читать далее...

Обзор компонентов Symfony2 : Применение преобразователя данных

  • PHP
  • 3 года назад
  • 5/6

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

Допустим вы используете связь один к одному между сущностями Task (задача) и Issue (проблема), т.е. задача может иметь проблему, а может и не иметь. Если вы просто добавите выпадающий список с полным набором возможных проблем, то отыскать в нем нужную вам будет практически невозможно. А можете создать текстовое поле, в которое пользователь будет вводить номер проблемы.

Читать далее...

Подготовка к Zend сертификации : Функции

  • PHP
  • 3 года назад
  • 2/3
  • Функция может содержать в себе любой корректный PHP код, включая другие функции и классы.
  • Функция не обязательно должна быть определена до вызова, за исключением её использования в условных операторах.
  • Объявленную функцию нельзя переопределить.
  • В PHP все функции и классы имеют глобальную область видимости - их допускается вызывать даже за пределами функции в случае, когда они были заданы внутри этой функции и наоборот.
  • имена функций не чувствительны к регистру
  • типы: встроенные, определенные пользователем, сторонние (например из расширений).
  • global $id; или $GLOBALS["id"] используются для доступа к глобальным переменным (по сути global $id это ссылка на $var = & $GLOBALS["id"]).
  • В PHP5 появилась возможность задать значение параметра функции по-умолчанию даже для параметров, передаваемых по ссылке (если параметр не был передан, то создается новая переменная).
  • В PHP5 объекты всегда передаются по ссылке, если только они не были клонированы.
  • допускается рекурсивный вызов функций (то есть function recursion($a) { if($a<10){recursion($a+1);} }), следите за тем, чтобы выполнение функций было ограниченно.
  • чтобы проверить существует ли функции в контексте используйте function_exists($function_name).
  • $arr = get_defined_functions() - даст вам полный список всех функций, $arr['user'] - функции заданные пользователем.
Читать далее...