+7 (987) 026-06-36
Написать в Telegram

Оставить заявку
stanislav_web

Вспомогательные функции на PHP для обработки данных

Вспомогательные функции на PHP для обработки данных Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

Вспомогательные функции на PHP для обработки данных

Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

📅 20 ноября 2023

👁‍🗨 637

🔥 0

Вспомогательные функции на PHP для обработки данных
<?php
if (!function_exists('consoleLog')) {
    function consoleLog($var) {
        echo '<script>console.log(' . json_encode($var, JSON_PARTIAL_OUTPUT_ON_ERROR) . ')</script>';
    }
}

consoleLog($array);
// Смотрим в консоль

if (!function_exists('phoneReplace')) {
    function phoneReplace($phone) {
        return str_replace([' (', ') ', '-'], '', $phone);
    }
}

$phone = '+7 (999) 999-99-99';
echo phoneReplace($phone);
// +79999999999

if (!function_exists('breakRow')) { // https://stanislav-web.com/blog/php/dobavit-teg-html-v-massiv-php-mezhdu-elementami/
    function breakRow($text, $number) {
        $string = $text;
        $stringExplode = explode(' ', $string);
        array_splice($stringExplode, $number, 0, '<br/>');
        $stringImplode = implode(' ', $stringExplode);
        return $stringImplode;
    }
}

$text = 'Lorem ipsum, dolor sit amet consectetur adipisicing, elit.';
echo breakRow($text, 3);
// Lorem ipsum, dolor<br/> sit amet consectetur adipisicing, elit.

// Склонение слов с помощью функции
if (!function_exists('declinePosition')) {
    function declinePosition($number, $one, $two, $five) {
        $lastDigit = $number % 10;
        $lastTwoDigits = $number % 100;

        if ($lastTwoDigits >= 11 && $lastTwoDigits <= 19) {
            return $five;
        } elseif ($lastDigit == 1) {
            return $one;
        } elseif ($lastDigit >= 2 && $lastDigit <= 4) {
            return $two;
        } else {
            return $five;
        }
    }
}

echo declinePosition($count, 'элемент', 'элемента', 'элементов');
// 1 элемент
// 2 элемента
// 5 элементов

// Склонение слов с помощью класса Declension из ядра D7
use Bitrix\Main\Grid\Declension;
$declension = new Declension('элемент', 'элемента', 'элементов');
echo $declension->get($count);

$domain = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
$canonical = $domain . $_SERVER['REQUEST_URI'];
$canonical = explode('?', $canonical);
$canonical = $canonical[0];

if (!function_exists('img')) {
    function img($var) {
        return CFile::GetPath($var);
    }
}

if (!function_exists('getRequest')) {
    function getRequest($param) {
        $request = \Bitrix\Main\Context::getCurrent()->getRequest();
        $method = strtolower($request->getRequestMethod());
        if ($method == 'get') {
            $response = $request->getQueryList()[$param];
        }
        return $response;
    }
}
if (!function_exists('postRequest')) {
    function postRequest($param) {
        $request = \Bitrix\Main\Context::getCurrent()->getRequest();
        $method = strtolower($request->getRequestMethod());
        if ($method == 'post') {
            $response = $request->getPostList()[$param];
        }
        return $response;
    }
}
?>