PHP код в одну строку
1 2 3 4 5 6 7 |
function oneLine($string) { $string = str_replace(["\r", "\n", "\t"], null, $string); $string = mb_ereg_replace('[\s]+', ' ', $string); $string = trim($string); return $string; } |
1 2 3 4 5 6 7 |
function oneLine($string) { $string = str_replace(["\r", "\n", "\t"], null, $string); $string = mb_ereg_replace('[\s]+', ' ', $string); $string = trim($string); return $string; } |
Для апача
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<ifModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_ACCEPT} image/webp RewriteCond %{REQUEST_URI} (?i)(.*)(\.jpe?g|\.png)$ RewriteCond %{DOCUMENT_ROOT}%1.webp -f RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R] </IfModule> <IfModule mod_headers.c> Header append Vary Accept env=REDIRECT_accept </IfModule> AddType image/webp .webp |
1 |
$.pjax.reload({container: '#pjax-shops-list', timeout: 5000, data: {city:id}, replace:false}); |
1 2 3 4 5 6 7 8 9 10 |
'pager' => [ 'class' => ScrollPager::class, 'enabledExtensions' => [ ScrollPager::EXTENSION_SPINNER, ScrollPager::EXTENSION_PAGING, ], 'eventOnReady' => "function(){ itemsInCategory(); }", 'eventOnRendered' => "function(){ itemsInCategory(); }", 'negativeMargin' => -1000, ] |
1 2 3 4 5 |
RewriteCond %{HTTP_HOST} ^sub1.example.com [OR] RewriteCond %{HTTP_HOST} ^sub2.example.com [OR] RewriteCond %{HTTP_HOST} ^old.example.com [OR] RewriteCond %{HTTP_HOST} ^forum.example.com RewriteRule ^(.*)$ https://www.example.com%{REQUEST_URI} [L,R=301] |
Используем ключевой параметр [OR], для задачи условия нескольким элементам. Тем самым мы добьемся, что старые поддомены будут редиректить на основной домен
Запретить отправку формы при нажатие на Enter в input можно следующим способом:
1 2 3 4 5 6 7 |
$('#formID').on('keyup keypress', function(e) { let keyCode = e.keyCode || e.which; if (keyCode === 13) { e.preventDefault(); return false; } }); |
Из выгрузки берем features->geometry->coordinates Массив вида
1 2 3 4 |
[[ ['23,23', '23,2323'], ['24,23', '24,2323'], ]]; |
Меняем местами координаты
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public function actionTest() { $array = [ ['34,43', '34,2323'], ['34,43', '34,2323'], ['34,43', '34,2323'], ]; $string = "[["; foreach ($array as $key) { $string .= '['; $string .= str_replace(',', '.', $key[1]) . ',' . str_replace(',', '.', $key[0]); $string .= '],'; } if (substr($string, -1) == ',') { $string = substr($string, 0, -1); } $string .= ']]'; $file = Yii::$app->otherFiles->getBucket('dump'); $file->saveFileContent('zona1.txt', $string); } |
Пример из жизни:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public function actionUpdateBaseZones($baseId) { $path = 'file.json'; $data = file_get_contents($path); $data = json_decode($data); foreach ($data->features as $features) { if ($features->geometry->type == 'Polygon') { $cords = []; $zona = intval(preg_replace("/[^0-9]/", '', $features->properties->description)); foreach ($features->geometry->coordinates as $coordinate) { foreach ($coordinate as $cord) { $cords[] = [$cord[1], $cord[0]]; } } $model = BaseZone::modify($baseId, $zona, '[' . json_encode($cords) . ']'); $model->save(); } } } |
Sql phone sql получить из строки только цифры sql регулярные выражения Sql запрос для получения номера телефона без букв, пробелов, и спец символов
1 2 3 |
select *, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(phone, '-', ''), ' ', ''), '+', ''), '(', ''), ')', '') as 'Телефон' from table |
Если версия mysql >= 8
1 |
select regexp_replace(phone, '[^[:digit:]]', '') from table |
mysql, sql
Для удаление файла из индекса git, например для прода или дева, используем следующее:
1 |
git rm --cached path/to/file.php |
ИЛИ
1 |
git update-index --assume-unchanged <path-name> |
Для удаление папки из индекса используем следующее:
1 |
git rm -r --cached folder |
Файл физически не будет удален
1 2 3 4 5 6 7 8 9 10 11 12 13 |
let images = $('div.images img') $.each(images, function( i, img ){ let src = $(img).data('src'); // check if img set if(src.length == 0){ return; } // show image $(img).attr('src', src); }); |
example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
function lazyLoaderReady() { let banners = $('.slider_banner .slider_banner_item a img[data-src]'); if (banners.length !== 0) { lazyShowImages(banners); } let slidersWithProducts = $('.itemSlider div li a .itemImg img[data-src]'); if (slidersWithProducts.length !== 0) { lazyShowImages(slidersWithProducts); } } lazyLoaderReady(); function itemsInCategory() { let products = $('#products-list-view .items .item li a .itemImg img[data-src]'); if (products.length > 0) { lazyShowImages(products); } } function lazyShowImages(images) { $.each(images, function( i, img ){ let src = $(img).data('src'); console.log(src); console.log($(img).attr('data-src')); // check if img set if (src) { if (src.length === 0) { return; } $(img).fadeTo(500,0.30, function() { $(img).attr("src", src); }).fadeTo(500,1); $(img).attr('data-src', null); } }); } |