function remains_parse_timestamp($t=0){
	$day=floor($t/86400);
	$hour=($t/3600)%24;
	$min=($t/60)%60;
	return array('day'=>$day,'hour'=>$hour,'min'=>$min);
}
function remains($t){
	$res='';
	if(time()<$t){
		$arr=remains_parse_timestamp($t-time());
		if($arr['day']>0){
			$res.=$arr['day'].' дн. ';
		}
		if($arr['hour']>0||$res!=''){
			$res.=$arr['hour'].' ч. ';
		}
		if($arr['min']>0||$res!=''){
			$res.=$arr['min'].' мин.';
		}
	}
	return $res;
}
echo remains(1504389720);

В функцию передаем unix timestamp даты в будущем.

Categories: PHP Tags:

Например, чтобы преобразовать &#9766; в ☦

html_entity_decode($text,ENT_NOQUOTES,'UTF-8')

Реальный пример:

<meta name="description" content="<?=htmlspecialchars(html_entity_decode($description,ENT_NOQUOTES,'UTF-8'))?>"/>
Categories: PHP Tags:
function conv($l){
	return iconv("utf-8","windows-1251",$l);
}
$array=array('один','два','три');
$new_array=array_map("conv",$array);
Categories: PHP Tags:

Имеем массив, составленный следующим образом:

$parts=array();
foreach($arr as $item){
	$parts[]=array(
		'name'=>$item['name'],
		'manufacturer'=>$item['maker'],
		'amount'=>$item['quantity'],
		'price'=>$item['price'],
		'term'=>$item['days'],
		'code'=>$item['orderreference'],
	);
}

Для сортировки по одному из ключей:

if(isset($_GET['order'])){
	foreach($parts as $k=>$v){
		$t_price[$k]=$v['price'];
		$t_amount[$k]=$v['amount'];
		$t_term[$k]=$v['term'];
	}
	switch($_GET['order']){
		case 'price':
			array_multisort($t_price,SORT_ASC,$parts);
		break;
		case 'amount':
			array_multisort($t_amount,SORT_ASC,$parts);
		break;
		case 'term':
			array_multisort($t_term,SORT_ASC,$parts);
		break;
	}
}

От меньшего к большему и от большего к меньшему:

if(isset($_GET['sort'])){
	foreach($parts as $k=>$v){
		$t_price[$k]=$v['price'];
		$t_amount[$k]=$v['amount'];
		$t_term[$k]=$v['term'];
	}
	$order=($_GET['order']=='desc')?SORT_DESC:SORT_ASC;
	switch($_GET['sort']){
		case 'price':
			array_multisort($t_price,$order,$parts);
		break;
		case 'amount':
			array_multisort($t_amount,$order,$parts);
		break;
		case 'term':
			array_multisort($t_term,$order,$parts);
		break;
	}
}
Categories: PHP Tags:
function clean_notes($text){
	$text=preg_replace("'<style[^>]*?>.*?</style>'si","",$text);
	$text=trim(strip_tags($text));
	if(strlen($text)>0){
		return '<p>'.$text.'</p>';
	}
	return '';
}
Categories: PHP Tags:
session_set_cookie_params(7200,"/",".site.ru",false,false);
Categories: PHP Tags:

Размер папок в текущей директории (не рекурсивно):

du -h --max-depth=1
Categories: Linux, Unix Tags: