Малоизвестные функции на PHP

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

checkdate()

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

<?php
var_dump(checkdate(2, 29, 2016)); // Возвращает true
var_dump(checkdate(2, 29, 2017)); // Возвращает false
?>

Не правда ли, полезное решение для проверки даты. Документация по checkdate.

highlight_string()

Функция для подсветки синтаксиса строки. Выводит или возвращает PHP код с разметкой html для подсвеченного синтаксиса, используя цвета, определенные во встроенном обработчике подсветки синтаксиса PHP.

<?php
highlight_string('<?php phpinfo(); ?>');
?>

Документация  по highlight_string. Еще есть функция highlight_file() для подсветки синтаксиса файла.

php_strip_whitespace()

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

?php
// PHP комментарий

/*
 * Другой PHP комментарий
 */

echo        php_strip_whitespace(__FILE__);
// Символы новой строки считаются пробелами, и также удаляются:
do_nothing();
?>

Хороший способ очистить код от лишнего. Документация по php_strip_whitespace.

get_defined_vars()

Возвращает массив всех определенных переменных.

<?php
print '<pre>' . htmlspecialchars(print_r(get_defined_vars(), true)) . '</pre>';
print '<pre>' . htmlspecialchars(print_r($_SERVER, true)) . '</pre>';
?>

Кто-то подумает, а зачем нужна данная функция, но вот кому-то может понадобиться получить массив всех определенных переменных. А вот документация по get_defined_vars.

str_word_count()

Функция возвращает информацию о словах, входящих в строку.

<?php

$str = "Hello fri3nd, you're
       looking          good today!";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));

echo str_word_count($str);

?>

Без сомнения, можно найти применение для данной функции в вашем проекте. Документация по str_word_count.

levenshtein()

Вычисляет расстояние Левенштейна между двумя строками.

<?php
// введенное слово с опечаткой
$input = 'carrrot';

// массив сверяемых слов
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// кратчайшее расстояние пока еще не найдено
$shortest = -1;

// проходим по словам для нахождения самого близкого варианта
foreach ($words as $word) {

    // вычисляем расстояние между входным словом и текущим
    $lev = levenshtein($input, $word);

    // проверяем полное совпадение
    if ($lev == 0) {

        // это ближайшее слово (точное совпадение)
        $closest = $word;
        $shortest = 0;

        // выходим из цикла - мы нашли точное совпадение
        break;
    }

    // если это расстояние меньше следующего наименьшего расстояния
    // ИЛИ если следующее самое короткое слово еще не было найдено
    if ($lev <= $shortest || $shortest < 0) {
        // set the closest match, and shortest distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Вы ввели: $input\n";
if ($shortest == 0) {
    echo "Найдено точное совпадение: $closest\n";
} else {
    echo "Вы не имели в виду: $closest?\n";
}

?>

Хороший способ для сравнения двух строк между собой. Документация по levenshtein.

constant()

Функция возвращает значение константы, даже если неизвестно её имя.

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // результат аналогичен предыдущему выводу


interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

Полезная возможность обращения к значению константы при неизвестности ее имени. Документация по constant.

usleep()

Функция очень похожа на sleep. Данная функция откладывает выполнение на микросекунды.

<?php

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: