|
Ok!
|
|
|
Ok!
|
---|---|---|---|---|
84 | INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE name="A", age=19 | update, duplicate | 100 | Если есть уже такой ключ в базе, то обновить значение |
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,support | 100 | Определить, поддерживает ли браузер webp картинки |
101 | /bitrix/modules/main/include.php replace OLDSITEEXPIREDATE by (exmpl) time() + 86400 * 3 | bitrix | 100 | replace 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,js | 100 | Пассивный ивент листнер |
180 | https://marketplace.1c-bitrix.ru/solutions/bitrix.liveapi/ | модуль, битрикс, API | 100 | Ссылка на Живое описание 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')); }) | парсинг js | 100 | Парсинг ссылок яваскриптом |
200 | "CUSTOM_FILTER" => "{"CLASS_ID":"CondGroup","DATA":{"All":"AND","True":"True"},"CHILDREN":[{"CLASS_ID":"CondIBSection","DATA":{"logic":"Equal","value":995}}]}", | custom filter, bitrix | 100 | Пример заполнения 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, date | 100 | Дата в 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, print | 100 | Как использовать возвращаемое 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, func | 110 | flog 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("Пароль неверный"); } | валидация, пароль, яваскрипт, javascript | 110 | Код валидации пароля на Javascript чтобы пароль был не короче 8 символов и содержал обязательно буквы маленькие, большие, цифры и спецсимволы |
251 | <meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="address=no"> | meta | 110 | Мета скрыть телефон и адрес |