PHP функции о которых Вы должны знать!

Опубликовано admin - вс, 03/27/2011 - 16:02

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

Функция для работы с произвольным числом аргументов

Иногда веб-разработчик сталкивается с ситуацией, когда одна из функций может получить заранее неопределённое количество аргументов, как быть в этом случае с определением каждого из них? Для этого предназначена функция func_get_args().

Попробуйте добавить третий аргумент или четвёртый, но доступа к нему получить не удастся. Чтобы получить значения аргументов, если заранее не известно их количество нужно использовать функцию func_get_args():

Используем функцию glob() для поиска файлов

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

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

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

Для получения полного пути к файлу используйте функцию realpath():

Оптимизируйте php

Для поиска напряжённых мест в работе скрипта можно использовать функции memory_get_usage() и memory_get_peak_usage(), данные функции содержат служебную информацию о выделенной памяти для работы скрипта.

Магические константы

В php самыми полезными из них являются следующие константы: константа содержащая номер текущей линии скрипта (__LINE__), константа содержащая абсолютный путь до файла(__FILE__), константа содержащая название директории (__DIR__), константа содержащая название функции (__FUNCTION__), константа содержащая название класса (__CLASS__), константа содержащая название метода (__METHOD__) и пространства имён (__NAMESPACE__).

О всех из них я не собираюсь рассказывать в этой статье, расскажу только о некоторых. Иногда скрипт может использоваться в разных местах, но путь заранее не известен, в этом случае если Вы не будете использовать константу __FILE__, то можете получить сообщение об ошибке.

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

Генерация уникального идентификатора

Многие начинающие разработчики для генерации случайного идентификатора "изобретают велосипед", хотя для этого существует специальная функция uniqid()

Функция uniqid() принимает несколько параметров, среди которых может быть префикс, предназначен он для снижения вероятности совпадения двух строк, генерируемых данной функцией.

Преобразование массива в строку

Функция serialize() пригодится Вам для тех случаев, когда нужно сохранить объект или массив в строку для дальнейшего помещения её в базу или в файл, а функция unserialize() для обратного преобразования из строки в массив или объект.

В последнее время стало популярно использовать формат JSON для передачи данных, в связи с чем в php 5.3 были добавлены функции json_encode() и json_decode():

Сжатие строк

Сжать строку можно несколькими способами, но самый простой - использовать функции gzcompress() и gzuncompress()

Дополнительный вариант с gzencode() для всей страницы пригодится для тех у кого не подключен на сервере mod_deflate.

Отслеживаем завершение функции

Для того чтобы определить момент завершения функции и к тому же узнать скорость её выполнения, Вы можете использовать следующий вариант:

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

Правильно работаем с массивом

Следующая функция часто используется мною для сохранения массива в базу данных.

Заключение

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

На разработку сайта! Скидки до 20%!