Поиск
Подписаться
Разное

Валидный XHTML 1.0 Transitional

Валидный RSS

Полезные PHP функции Категория: PHP
Название: Полезные PHP функции
Дата добавления: 12-04-2012
Раз просмотрено: 1043
Комментарии: 1
Рейтинг: * * * * * * * * * * (2 голоса)

Полезные PHP функции

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

Функция Glob

Функция glob() малоизвестна и применяется нечасто, несмотря на свое очень интересное свойство. Эта функция возвращает массив из имен файлов и папок в директории, переданной этот функции как параметр. В этой функции можно использовать шаблоны:

// Записываем в массив $files имена всех файлов в текущей директории с расширением .php:
$files = glob('*.php');

print_r($files);

/* На выходе получим что-то вроде этого:

Array (
	[0] => phptest.php
	[1] => pi.php
	[2] => post_output.php
	[3] => test.php
)
*/

Мы можем выбрать файлы с несколькими расширениями:

// Записываем в массив $files имена всех файлов в текущей директории с расширением .php и .txt:
$files = glob('*.{php,txt}');

print_r($files);

/* На выходе получим что-то вроде этого:

Array (
	[0] => phptest.php
	[1] => pi.php
	[2] => post_output.php
	[3] => test.php
	[4] => log.txt
	[5] => test.txt
)
*/

Содержимое (все файлы и папки) текущей директории можно получить так:

$files = glob('*');

Создание уникальных идентификаторов

Когда некоторым веб-мастерам необходимо получить уникальную строку или идентификатор, многие поступают таким образом:

echo md5(rand(1, 1000000));

Однако, это не совсем верное решение, т.к. в PHP для этого существует специальное решение — специальная функция uniqid(). Она возвращает уникальный идентификатор — строку длиной в 13 символов и состоящую из цифр от 0 до 9 и латинских букв от a до f (также как и функция md5()). Но работает эта функция быстрее. Поэтому лучше писать так:

echo uniqid();

Для этой строки можно использовать префикс (т.е строка которая будет добавляться до идентификатора):

echo uniqid('user_');
// Это эквивалетно:
echo 'user'. uniqid();

Сериализация и десериализация

В PHP существует специальная функция serialize(), которая закодирует любой массив в строку. А из строки его можно вернуть обратно в состояние массива с помощью функции unserialize(). Обычно этот способ применяется для хранения массивов в суперглобальных массивах ($_POST, $_SESSION, $_COOKIE и других), а также в базах данных.

// Создаем сложный массив:
$array = array (
	'Привет',
	42,
	array ('ОДИН', 'ДВА'),
	'Яблоко'
);

// Сериализуем его и записываем в переменную результат и выводим:
$string = serialize($array);
echo $string;

// Выведет: a:4:{i:0;s:12:"Привет";i:1;i:42;i:2;a:2:{i:0;s:8:"ОДИН";i:1;s:6:"ДВА";}i:3;s:12:"Яблоко";}?

// Теперь десериализуем нашу строку:
$new_array = unserialize($string);
print_r($new_array);

/* Выведет:
Array (
	[0] => Привет
	[1] => 42
	[2] => Array (
		[0] => ОДИН
		[1] => ДВА
	)
	[3] => Яблоко
)
*/

Сжатие строк

В PHP имеется отличная функция для сжатия и распаковки строк по алгоритму GZIP. Функция gzcompress() возвращает сжатую строку, а функция gzuncompress() распаковывает ее. Этот инструмент очень полезен в процессе ускорения загрузки сайта:

$string =
"Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc ut elit id mi ultricies
adipiscing. Nulla facilisi. Praesent pulvinar,
sapien vel feugiat vestibulum, nulla dui pretium orci,
non ultricies elit lacus quis ante. Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Aliquam
pretium ullamcorper urna quis iaculis. Etiam ac massa
sed turpis tempor luctus. Curabitur sed nibh eu elit
mollis congue. Praesent ipsum diam, consectetur vitae
ornare a, aliquam a nunc. In id magna pellentesque
tellus posuere adipiscing. Sed non mi metus, at lacinia
augue. Sed magna nisi, ornare in mollis in, mollis
sed nunc. Etiam at justo in leo congue mollis.
Nullam in neque eget metus hendrerit scelerisque
eu non enim. Ut malesuada lacus eu nulla bibendum
id euismod urna sodales. ";

echo "Размер строки до сжатия: " . strlen($string);
// Выведет: 800

$compressed = gzcompress($string);
echo "Размер после сжатия: " . strlen($compressed);
// Выведет: 418

// Возвращаем исходное состояние:
$original = gzuncompress($compressed);

Специальные константы

PHP предоставляет нам большое количество предопределенных констант, и в их числе эти специальные и очень необходимые константы (Обратите внимание до их названия и после него идет 2 знака подчеркивания: __):

Это интересно: «Как использовать любой шрифт на сайте».

Понравился материал? Расскажи о нем всем:
Оцените эту статью:
Прокомментируйте:
Ваше имя:
kostio  •  2012-09-05 14:34:31
действительно полезные функции