(☞ຈل͜ຈ)☞ Главная  Статьи  Загрузчик Домой

Ok!
Ok!
84
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
update, duplicate100Если есть уже такой ключ в базе, то обновить значение
94
$webpsupport = (strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') >= 0);
if($webpsupport) {
  $this->attemptToServeWebP($pathinfo, $matches, $width, $height, $density);
} else {
  $this->attemptToServeNormal($pathinfo, $matches, $width, $height, $density);
}
webp,support100Определить, поддерживает ли браузер webp картинки
101
/bitrix/modules/main/include.php replace OLDSITEEXPIREDATE by (exmpl) time() + 86400 * 3
bitrix100replace old site expire date
112
$r = GetCountries();
print_r($r);
Array
(
    [0] => Array
        (
            [ID] => 1
            [CODE] => RU
            [NAME] => Россия
        )

    [1] => Array
        (
            [ID] => 2
            [CODE] => AZ
            [NAME] => Азербайджан
        )
)
страны, страна, битрикс, массив100Получить массив стран в Битрикс
159
function lat2cyr($s)
{
    $sb = "";
    $i = 0;
    $lc = false;
    while ($i < strlen($s)) {
        $ch = substr($s, $i, 1);
        $lc = ctype_lower($ch); // true/false
        $ch = mb_strtoupper($ch);
        if ($ch == 'J') { // Префиксная нотация вначале
            $i++; // преходим ко второму символу сочетания
            $ch = strtoupper(substr($s, $i, 1));
            switch ($ch) {
                case 'O':
                    $sb .= ch('Ё', $lc);
                    break;
                case 'H':
                    if ($i + 1 < strlen($s) && mb_strtoupper(substr($s, $i + 1, 1) == 'H')){ // проверка на постфикс (вариант JHH)
                        $sb .= ch('Ъ', $lc);
                        $i++; // пропускаем постфикс
                    }
                    else{
                        $sb .= ch('Ь', $lc);
                    }
                    break;
                case
                'U': $sb .= ch('Ю', $lc); break;
                case 'A': $sb = ch('Я', $lc); break;
                default: break;
            }
        } else if ($i + 1 < strlen($s) && mb_strtoupper(substr($s, $i + 1, 1)) == 'H') { // Постфиксная нотация, требует информации о двух следующих символах. Для потока придется сделать обертку с очередью из трех символов.
            switch ($ch) {
                case 'Z':
                    $sb .= ch('Ж', $lc);
                    break;
                case 'K':
                    $sb .= ch('Х', $lc);
                    break;
                case 'C':
                    $sb .= ch('Ч', $lc);
                    break;
                case 'S':
                    if ($i + 2 < strlen($s) && mb_strtoupper(substr($s, $i + 2, 1)) == 'H') { // проверка на двойной постфикс
                        $sb .= ch('Щ', $lc);
                        $i++; // пропускаем первый постфикс
                    } else {
                        $sb .= ch('Ш', $lc);
                    }
                    break;
                case 'E':
                    $sb .= ch('Э', $lc);
                    break;
                case 'I':
                    $sb .= ch('Ы', $lc);
                    break;
                default:
                    break;
            }
            $i++; // пропускаем постфикс
        } else {// одиночные символы
            switch ($ch) {
                case 'A':
                    $sb .= ch('А', $lc);
                    break;
                case 'B':
                    $sb .= ch('Б', $lc);
                    break;
                case 'V':
                    $sb .= ch('В', $lc);
                    break;
                case 'G':
                    $sb .= ch('Г', $lc);
                    break;
                case 'D':
                    $sb .= ch('Д', $lc);
                    break;
                case 'E':
                    $sb .= ch('Е', $lc);
                    break;
                case 'Z':
                    $sb .= ch('З', $lc);
                    break;
                case 'I':
                    $sb .= ch('И', $lc);
                    break;
                case 'Y':
                    if (mb_strtoupper(substr($s, $i + 1, 1) === ' ')){ // проверка на пробел после Y
                        $sb .= ch('И', $lc);
                        $i++; // пропускаем постфикс
                    }
                    else{
                        $sb .= ch('Й', $lc);
                    }
                    break;    
                case 'K':
                    $sb .= ch('К', $lc);
                    break;
                case 'L':
                    $sb .= ch('Л', $lc);
                    break;
                case 'M':
                    $sb .= ch('М', $lc);
                    break;
                case 'N':
                    $sb .= ch('Н', $lc);
                    break;
                case 'O':
                    $sb .= ch('О', $lc);
                    break;
                case 'P':
                    $sb .= ch('П', $lc);
                    break;
                case 'R':
                    $sb .= ch('Р', $lc);
                    break;
                case 'S':
                    $sb .= ch('С', $lc);
                    break;
                case 'T':
                    $sb .= ch('Т', $lc);
                    break;
                case 'U':
                    $sb .= ch('У', $lc);
                    break;
                case 'F':
                    $sb .= ch('Ф', $lc);
                    break;
                case 'C':
                    $sb .= ch('Ц', $lc);
                    break;
                default:
                    $sb .= ch($ch, $lc);
            }
        }

        $i++; // переходим к следующему символу
    }
    return (string)$sb;
}

function cyrlat($ch)
{
    switch ($ch) {
        case 'А':
            return "A";
        case 'Б':
            return "B";
        case 'В':
            return "V";
        case 'Г':
            return "G";
        case 'Д':
            return "D";
        case 'Е':
            return "E";
        case 'Ё':
            return "JO";
        case 'Ж':
            return "ZH";
        case 'З':
            return "Z";
        case 'И':
            return "I";
        case 'Й':
            return "Y";
        case 'К':
            return "K";
        case 'Л':
            return "L";
        case 'М':
            return "M";
        case 'Н':
            return "N";
        case 'О':
            return "O";
        case 'П':
            return "P";
        case 'Р':
            return "R";
        case 'С':
            return "S";
        case 'Т':
            return "T";
        case 'У':
            return "U";
        case 'Ф':
            return "F";
        case 'Х':
            return "KH";
        case 'Ц':
            return "C";
        case 'Ч':
            return "CH";
        case 'Ш':
            return "SH";
        case 'Щ':
            return "SHH";
        case 'Ъ':
            return "JHH";
        case 'Ы':
            return "IH";
        case 'Ь':
            return "JH";
        case 'Э':
            return "EH";
        case 'Ю':
            return "JU";
        case 'Я':
            return "JA";
        default:
            return $ch;
    }
}

function cyr2lat($s)
{
    $sb = "";
    $ch = preg_split('//u', $s, null, PREG_SPLIT_NO_EMPTY);
    
    for ($i = 0; $i < count($ch); $i++) {
        $lc = preg_match('~^p{Lu}~u', $ch[$i]) ? 0 : 1;
        $v = $ch[$i];
        $l = mb_strtoupper($v);
        $c = cyrlat($l);
        $lat = ch($c, $lc);
        $sb .= $lat;
    }
    return $sb;
}

/**
 * Вспомогательная функция для восстановления регистра
 */
function ch($ch, $tolower)
{
    return $tolower ? mb_strtolower($ch) : mb_strtoupper($ch);
}



echo cyr2lat("провинции Арма") . "
";
echo lat2cyr("Provinces of Lightness") . "
";


транслит, ретранслит100Транслит русско-латинский, латинско-русский
166
<script>
    document.addEventListener("touchstart", function(e) {
        console.log(e.defaultPrevented);  // will be false
        e.preventDefault();   // does nothing since the listener is passive
        console.log(e.defaultPrevented);  // still false
    }, Modernizr.passiveeventlisteners ? {passive: true} : false);
</script>
touchstart,passive,js100Пассивный ивент листнер
180
https://marketplace.1c-bitrix.ru/solutions/bitrix.liveapi/
модуль, битрикс, API100Ссылка на Живое описание API Битрикс. Механизм сканирует все модули Битрикс и выводит все методы этих модулей. Можно посмотреть, какие возможности у каждого модуля!
182
<?
                $today = new DateTime();
                $begin = new DateTime('January 01');
                $ny1 = new DateTime('December 20');
                $ny2 = new DateTime('January 8');
                $spring = new DateTime('March 01');
                $summer = new DateTime('June 01');
                $fall = new DateTime('September 01');
                $winter = new DateTime('December 01');
                switch (true) {
                    case $today >= $ny1 || $today < $ny2:
                        echo 'Новогоднее настроение';
                        break;

                    case ($today >= $winter || $today >= $begin) && $today < $spring:
                        echo 'Зимнее настроение';
                        break;

                    case $today >= $spring && $today < $summer:
                        echo 'Весеннее настроение';
                        break;

                    case $today >= $summer && $today < $fall:
                        echo 'Летнее настроение';
                        break;

                    case $today >= $fall && $today < $winter:
                        echo 'Осеннее настроение';
                        break;
                    default:
                        break;
                }
                ?>
зимнее, весеннее100зимнее или весеннее
188
var hr = $('body').find('.popup_image')
hr.each(function(){
    console.log($(this).attr('href') + ' ' + $(this).attr('title'));
})
парсинг js100Парсинг ссылок яваскриптом
200
"CUSTOM_FILTER" => "{"CLASS_ID":"CondGroup","DATA":{"All":"AND","True":"True"},"CHILDREN":[{"CLASS_ID":"CondIBSection","DATA":{"logic":"Equal","value":995}}]}",
custom filter, bitrix100Пример заполнения custom_filter в Битрикс
206
const add = (a) => (b) => a + b;
console.log (add(3)(2))
js, двойная функция100Пример двойной функции в Яваскрипт
208
https://view.officeapps.live.com/op/view.aspx?src=https://site.com/price/price.xlsx
просмотр эксель, excel в браузере100Ссылка на просмотр файла эксель в браузере на сайте Майкрософт https://view.officeapps.live.com
228
new Date().toLocaleString('en-CA').substr(0,10)
дата, JS, date100Дата в Javascript ГГГГ-ММ-ДД
243
BitrixMainLoader::includeModule('iblock');
CIBlockSection::ReSort(30);
переиндексация разделов битрикс100Переиндексация LEFT_MARGIN и RIGHT_MARGIN разделов Битрикс
248
<?php
$haystack = 'abcde';
$needle = 'f';
strpos($haystack,$needle) !== FALSE OR print "$needle not in $haystack";
php, print100Как использовать возвращаемое print значение (1)
261
function flog($fname, $ftext, $write_a_w_state = null){
    if($write_a_w_state)
        $write_a_w_state = 8; // FILE_APPEND
    else
        $write_a_w_state = 0; // FILE_APP
        
    $fp = "/home/virtwww/w_2315art-ru_25432bcf/http/log/" . substr($fname, 0, strpos($fname, ".")) . "_" . date('m') . "_" . date('Y') . substr($fname, strpos($fname, "."));
    file_put_contents($fp, date("Y-m-d H:i:s ") . $ftext . "
", $write_a_w_state);
    
}
log, php, func110flog new
37
<?=date ("d-m-Y H:i:s", filemtime(__FILE__))?>
публикация, дата публикации110Дата публикации, время последнего изменения файла php
114
$apiToken = "код_числом:код_присланный";
            $data = [
                'chat_id' => '@Notifier_lamaree',
                'text' => 'Goods Posuda import OK in '.date('d.m.Y H:i:s').'!'
            ];
            $response = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) );
телеграм, бот сообщений, мессенджер110Телеграм бот для отправки сообщений любых с сайта
233
function validatePassword(password) {
  // Проверяем, что длина пароля не меньше 8 символов
  if (password.length < 8) {
    return false;
  }

  // Проверяем, что пароль содержит хотя бы одну цифру, одну маленькую букву, одну большую букву и один спецсимвол
  const regex = /^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+-=[]{};':"\|,.<>/?]).*$/;
  return regex.test(password);
}

Пример

const password = "myP@ssw0rd";
if (validatePassword(password)) {
  console.log("Пароль верный");
} else {
  console.log("Пароль неверный");
}
валидация, пароль, яваскрипт, javascript110Код валидации пароля на Javascript чтобы пароль был не короче 8 символов и содержал обязательно буквы маленькие, большие, цифры и спецсимволы
251
<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="address=no">
meta110Мета скрыть телефон и адрес
1 2 3 4 5 6 7 8 9 10 11 12 13 14