htaccess .html remove

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
Categories: Web Tags:

display inline-block ie

	display:-moz-inline-stack;
	display:inline-block;
	vertical-align:top;
	zoom:1;
	*display:inline;
Categories: Other Tags:

display table-cell ie

Решается метатегом

<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
Categories: Web Tags:

Request Payload как принять

В примере нужна реализация api для формы, отправляемой с помощью Angular JS. Данные отправляются в Request Payload (название из консоли Google Chrome) при этом массив $_POST — пуст.

Чтобы получить эти данные
В виде json:

echo file_get_contents('php://input');

В результате получим:

{"jsonrpc":"2.0","method":"Widget.ContactForm.sendMessage","id":"0","params":{"message":{"name":"Krylov","email":"krylov@krylov.org.ua","address":"+78120000000","message":"test"},"placeholder":{"name":"Name *","email":"E-mail *","address":"Cell ","message":"Comment *"},"hash":"1@KfwalNFOU1rJqW8s4ffYsHg/zlhRhCTLd0XubaAkcVIxhpL227jVj+ZAWVdgge1+eCLe7c1ww+VOT4b26gDXlUvAl39DeMXMzCbqxgK9/e0O1VIIpXX8YYdD0za2rC0nsBHkw0/Ing7u+pYK5KoIpqk4L47Q7DtNRVbLglD6Fm0="}}

В виде массива:

print_r(json_decode(trim(file_get_contents('php://input')),true));

В результате получим:

Array
(
    [jsonrpc] => 2.0
    [method] => Widget.ContactForm.sendMessage
    [id] => 0
    [params] => Array
        (
            [message] => Array
                (
                    [name] => Krylov
                    [email] => krylov@krylov.org.ua
                    [address] => +78120000000
                    [message] => test
                )
 
            [placeholder] => Array
                (
                    [name] => Name *
                    [email] => E-mail *
                    [address] => Cell 
                    [message] => Comment *
                )
 
            [hash] => 1@KfwalNFOU1rJqW8s4ffYsHg/zlhRhCTLd0XubaAkcVIxhpL227jVj+ZAWVdgge1+eCLe7c1ww+VOT4b26gDXlUvAl39DeMXMzCbqxgK9/e0O1VIIpXX8YYdD0za2rC0nsBHkw0/Ing7u+pYK5KoIpqk4L47Q7DtNRVbLglD6Fm0=
        )
 
)

Пример простейшей обработки:

header('Content-Type: application/json');
$data=json_decode(trim(file_get_contents('php://input')),true);
if(count($data['params']['placeholder'])>0){
	$message='';
	foreach($data['params']['placeholder'] as $k=>$v){
		$message.='<b>'.$v.':</b> '.$data['params']['message'][$k].'<br/>';
	}
	$from='=?utf-8?B?'.base64_encode('Site Name').'?=';
	$subject='=?utf-8?B?'.base64_encode('Contact Form').'?=';
	$headers="Content-Type: text/html; charset=utf-8\r\n";
	$headers.="From: \"".$from."\"<noreply@".$_SERVER['HTTP_HOST'].">\r\n";
	if(mail('to@email.com',$subject,$message,$headers)){
		exit('{"result":true,"id":"'.$data['id'].'","jsonrpc":"2.0"}');
	}
}
exit('{"error":{"code":-32600,"message":"Invalid Request","data":null},"id":null}');
Categories: Other Tags:

mysql: where c учетом скидки в процентах

Например при фильтре по цене от 7 до 8 с учетом скидки 3%

 AND (`price`-(`price`*3/100))>="7" AND (`price`-(`price`*3/100))<="8"
Categories: Other Tags:

jquery — скрыть блок при клике вне него

Скрываем блок catalog_filter_item_multi_values при клике вне него. Также при открытии одного из блоков скрываем остальные. При повторном нажатии скрываем активный. При убирании мыши из области активного блока скрывать его.

$(document).click(function(event){
	if($(event.target).closest(".catalog_filter_item_multi_values").length||$(event.target).closest(".catalog_filter_item_multi_title").length)return;
	$(".catalog_filter_item_multi_values").fadeOut("slow");
	event.stopPropagation();
});
$('.catalog_filter_item_multi').hover(function(){
},function(){
	$(".catalog_filter_item_multi_values").fadeOut("slow");
});
$('.catalog_filter_item_multi_title').click(function(){
	$('.catalog_filter_item_multi_values').not($(this).next()).hide();
	$(this).next('.catalog_filter_item_multi_values').slideToggle();
});
<div class="catalog_filter_items_multi">
	<div class="catalog_filter_item_multi">
		<div class="catalog_filter_item_multi_title">Цвет</div>
		<div class="catalog_filter_item_multi_values">
			<label>бежевый <input type="checkbox" name="color[]" value="20"/><span></span></label>
			<label>белый <input type="checkbox" name="color[]" value="7"/><span></span></label>
			<label>черный <input type="checkbox" name="color[]" value="5"/><span></span></label>
		</div>
	</div>
	<div class="catalog_filter_item_multi">
		<div class="catalog_filter_item_multi_title">Материал</div>
		<div class="catalog_filter_item_multi_values">
			<label>дерево <input type="checkbox" name="mat[]" value="13"/><span></span></label>
			<label>искусственная кожа <input type="checkbox" name="mat[]" value="3"/><span></span></label>
		</div>
	</div>
	<div class="catalog_filter_item_multi">
		<div class="catalog_filter_item_multi_title">Брэнд</div>
		<div class="catalog_filter_item_multi_values">
			<label>707 <input type="checkbox" name="brand[]" value="17218"/><span></span></label>
			<label>Avenue <input type="checkbox" name="brand[]" value="17210"/><span></span></label>
		</div>
	</div>
</div>
Categories: Other Tags:

preg_math title html — получить title страницы по URL

function get_title($url){
	$fp=file_get_contents($url);
	if(!$fp){
		return false;
	}
	$res=preg_match("/<title>(.*)<\/title>/siU",$fp,$title_matches);
	if(!$res){
		return false;
	}
	$title=preg_replace('/\s+/',' ',$title_matches[1]);
	$title=trim($title);
	return $title;
}
Categories: PHP Tags: