ФорумПрограммирование → Сниппеты PHP
2018-04-09 04:15:34
function startsWith($haystack, $needle) {
    if (is_array($needle)) {
        foreach ($needle as $n) {
            if (startsWith($haystack, $n)) {
                return true;
            }
        }

        return false;
    } else {
        $length = mb_strlen($needle);
        return (mb_substr($haystack, 0, $length) === $needle);
    }
}
2018-04-09 04:16:38
function endsWith($haystack, $needle) {
    if (is_array($needle)) {
        foreach ($needle as $n) {
            if (endsWith($haystack, $n)) {
                return true;
            }
        }

        return false;
    } else {
        $length = mb_strlen($needle);
        return $length === 0 || (mb_substr($haystack, -$length) === $needle);
    }
}
2018-04-09 04:18:46
Реверс строки для мультибайтовых кодировок
function mb_strrev($string, $encoding = null) {
    if ($encoding === null) {
        $encoding = mb_detect_encoding($string);
    }

    $length = mb_strlen($string, $encoding);
    $reversed = '';

    while ($length-- > 0) {
        $reversed .= mb_substr($string, $length, 1, $encoding);
    }

    return $reversed;
}
2018-04-09 04:19:55
Обрезка пробелов в строке мультибайтовой кодировки

function mb_trim($string, $trim_chars = '\s'){
    return preg_replace('/^[' . $trim_chars . ']*(?U)(.*)[' . $trim_chars . ']*$/u', '\\1', $string);
}
2018-04-09 04:21:19
Попытка улыбка получить IP клиента

function get_ip() {
    $ip = '';

    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }

    return $ip;
}
2018-04-09 04:24:07
Генерация N символов латиницы и цыфр. Убраны символы, которые можно визуально спутать с другими.

function generateSymbols($count) {
    $symbols = 'abcdefghkmnopqrstuvwxyzABCDEFGHKLMNPRSTUVWXYZ123456789';
    $salt = '';
    $len = strlen($symbols);

    for ($i = 0; $i < $count; ++$i) {
        $salt .= $symbols[mt_rand(0, $len - 1)];
    }

    return $salt;
}
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!