5 сентября 2022 Нет комментариев
var catalog_tags=$('#catalog_tags');
catalog_tags.owlCarousel({
	loop:false,
	margin:15,
	items:10,
	nav:true,
	dots:false,
	navText:['<i class="fa fa-angle-left"></i>','<i class="fa fa-angle-right"></i>'],
	autoWidth:true,
});
$('.catalog_tags .all').on('click',function(){
	$(this).remove();
	catalog_tags.trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
	catalog_tags.find('.owl-stage-outer').children().unwrap();
});
Categories: Javascript Tags:
9 августа 2022 Нет комментариев

Когда каждый элемент .block полностью показан (прокручен до конца) добавляем блоку .bullet класс .active

$(document).ready(function(){
	$(window).scroll(function(){
		var scroll=parseInt($(window).scrollTop())+parseInt($(window).height());
		$('.block').each(function(){
			var offset=parseInt($(this).offset().top)+parseInt($(this).height());
			if(scroll>offset){
				$(this).find('.bullet').addClass('active');
			}
		});
	});
});
Categories: Javascript Tags: ,
8 августа 2022 Нет комментариев
$result=array();
ob_start('ob_gzhandler');
echo json_encode($result);
Categories: PHP Tags:
4 августа 2022 Нет комментариев
echo preg_replace('/<(\s*)img[^<>]*>/i','',$text);
Categories: PHP Tags:
3 августа 2022 1 комментарий

В примере для PageSpeed Insights показываем вместо контента скриншот страницы
Вариант 1 через PageSpeed Insights API:
Ключ API получить здесь: https://developers.google.com/speed/docs/insights/v5/get-started

if(strpos($_SERVER['HTTP_USER_AGENT'],'Chrome-Lighthouse')!==false){
	Define("IS_LIGHTHOUSE",1);
}
if(defined('IS_LIGHTHOUSE')){
	$api_key="yourAPIKey";
	$requested_link=explode('?',$_SERVER['REQUEST_URI']);
	$screen_url=$_SERVER['HTTP_X_FORWARDED_PROTO']."://".$_SERVER['HTTP_HOST'].$requested_link[0];
	$strategy=(defined('IS_MOBILE'))?'MOBILE':'DESKTOP';
	$curl_url="https://pagespeedonline.googleapis.com/pagespeedonline/v5/runPagespeed?url=".urlencode($screen_url)."&category=CATEGORY_UNSPECIFIED&strategy=".$strategy."&key=".$api_key;
	$curl=curl_init($curl_url);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
	$response=curl_exec($curl);
	curl_close($curl);
	$googledata=json_decode($response,true);
	$screen_img=$googledata["lighthouseResult"]["audits"]["full-page-screenshot"]["details"]["screenshot"]["data"];
	exit('<html><head><meta name="viewport" content="width=device-width,initial-scale=1"/></head><body><img src="'.$screen_img.'" alt="" width="100%" height="100%"/></body></html>');
}

Вариант 2 — более быстрый, не нужен ключ

if(strpos($_SERVER['HTTP_USER_AGENT'],'Chrome-Lighthouse')!==false){
	Define("IS_LIGHTHOUSE",1);
}
if(defined('IS_LIGHTHOUSE')){
	if(defined('IS_MOBILE')){
		$w=375;
		$h=812;
	}
	else{
		$w=1920;
		$h=1080;
	}
	$requested_link=explode('?',$_SERVER['REQUEST_URI']);
	$screen_url=$_SERVER['HTTP_X_FORWARDED_PROTO']."://".$_SERVER['HTTP_HOST'].$requested_link[0];
	$screen_img="https://s0.wordpress.com/mshots/v1/".urlencode($screen_url)."?w=".$w."&h=".$h;
	exit('<html><head><meta name="viewport" content="width=device-width,initial-scale=1"/></head><body><img src="'.$screen_img.'" alt="" width="100%" height="100%"/></body></html>');
}

Спрятать адрес wordpress.com:

if(strpos($_SERVER['HTTP_USER_AGENT'],'Chrome-Lighthouse')!==false){
	Define("IS_LIGHTHOUSE",1);
}
if(defined('IS_LIGHTHOUSE')){
	if(defined('IS_MOBILE')){
		$w=375;
		$h=812;
	}
	else{
		$w=1920;
		$h=1080;
	}
	$requested_link=explode('?',$_SERVER['REQUEST_URI']);
	$screen_url=$_SERVER['HTTP_X_FORWARDED_PROTO']."://".$_SERVER['HTTP_HOST'].$requested_link[0];
	$screen_img_url="https://s0.wordpress.com/mshots/v1/".urlencode($screen_url)."?w=".$w."&h=".$h;
	$curl=curl_init($screen_img_url);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
	curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36');
	$img_data=curl_exec($curl);
	$screen_img='data:image/jpg;base64,'.base64_encode($img_data);
	exit('<html><head><meta name="viewport" content="width=device-width,initial-scale=1"/></head><body><img src="'.$screen_img.'" alt="" width="100%" height="100%"/></body></html>');
}
Categories: PHP Tags:

В примере если опций 2 то выбирать последнюю

var select_format=$('select[name=format]');
var options_count=select_format.find('option').length;
if(options_count==2){
	select_format.prop('selectedIndex',options_count-1).change();
}
Categories: Javascript Tags:

$price — полная стоимость
$first — первоначальный взнос в %
$rate — ставка в %
$years — кол-во лет

function calc_annuity($price,$first,$rate,$years){
	$credit_price=$price-($price*$first/100);
	$real_rate=$rate/100;
	$pay_year=$credit_price*($real_rate+($real_rate/(pow(1+$real_rate,$years)-1)));
	$pay_month=$pay_year/12;
	return $pay_month;
}

Например для расчета ежемесячного платежа для суммы 2000000, с первоначальным взносом 15% под 10.7% годовых на 20 лет

echo calc_annuity(2000000,15,10.7,20);

Еще вариант:

<?php
 
// Задаем начальные данные
$loanAmount = 1000000; // сумма кредита
$interestRate = 12 / 100; // процентная ставка (годовая)
$loanTerm = 12; // срок кредита (месяцы)
 
// Расчет ежемесячного платежа
$monthlyInterestRate = $interestRate / 12; // процентная ставка (месячная)
$annuityFactor = $monthlyInterestRate * pow(1 + $monthlyInterestRate, $loanTerm) / (pow(1 + $monthlyInterestRate, $loanTerm) - 1);
$monthlyPayment = $annuityFactor * $loanAmount;
 
echo "Ежемесячный платеж: " . round($monthlyPayment, 2) . " рублей";
 
?>
Categories: PHP Tags: