Архив

Публикации с меткой ‘PHP’
15 марта 2017 Нет комментариев

Решение проблемы подсветки поискового запроса не учитывая регистр.
Рабочий вариант с регулярным выражением:

function colorSearchWord($word,$string,$color='violet'){
	return preg_replace('|('.preg_quote($word).')|si','<span style="color:'.$color.';border-bottom:1px dashed '.$color.';">$1</span>',$string);
}

С str_replace фразы в разном регистре не будет подсвечены:

function colorSearchWord($word,$string,$color='violet'){
	$replacement="<span style='color:".$color."; border-bottom:1px dashed ".$color.";'>".$word."</span>";
	$result=str_replace($word,$replacement,$string);
	return $result;
}

Можно использовать str_ireplace, но подсвеченные фразы будут приведены к нижнему регистру

function colorSearchWord($word,$string,$color='violet'){
	$replacement="<span style='color:".$color."; border-bottom:1px dashed ".$color.";'>".$word."</span>";
	$result=str_ireplace($word,$replacement,$string);
	return $result;
}
Categories: PHP Tags:
23 января 2017 Нет комментариев

Проверить, что строка содержит только кириллицу:

if(preg_match('/^[а-яё]++$/ui',$letter)){
	//...
}
Categories: PHP Tags:
23 января 2017 Нет комментариев

В примере URL
http://revolution.rhga.ru/section/detail.php?section=obrazy-revolucii&element=za-velikuyu-edinuyu-i-nedelimuyu-rossiyu&sphrase_id=4555549

нужно привести к виду
http://revolution.rhga.ru/section/obrazy-revolucii/za-velikuyu-edinuyu-i-nedelimuyu-rossiyu.html

1. Получим массив параметров и их значений:

function format_url($url){
	$result=array();
	$pu=parse_url($url);
	if($pu['query']){
		$parts=explode('&',html_entity_decode($pu['query']));
		foreach($parts as $part){
			$param=explode('=',$part);
			$result[$param[0]]=$param[1];
		}
	}
	return $result;
}
print_r(format_url($url));
Array
(
    [section] => obrazy-revolucii
    [element] => za-velikuyu-edinuyu-i-nedelimuyu-rossiyu
    [sphrase_id] => 4555549
)

2. Затем сформируем URL в нужном нам формате:

function format_url($url){
	$result=$url;
	$arr=array();
	$pu=parse_url($url);
	if($pu['query']){
		$parts=explode('&',html_entity_decode($pu['query']));
		foreach($parts as $part){
			$param=explode('=',$part);
			$arr[$param[0]]=$param[1];
		}
		if($arr['section']&&$arr['element']){
			$result='/section/'.$arr['section'].'/'.$arr['element'].'.html';
		}
	}
	return $result;
}
Categories: PHP Tags:
13 января 2017 Нет комментариев
function sgp($url,$varname,$value){
	if(is_array($varname)){
		foreach($varname as $i=>$n){
			$v=(is_array($value))?(isset($value[$i])?$value[$i]:NULL):$value;
			$url=sgp($url,$n,$v);
		}
		return $url;
	}
	preg_match('/^([^?]+)(\?.*?)?(#.*)?$/',$url,$matches);
	$gp=(isset($matches[2]))?$matches[2]:'';
	if(!$gp)return $url;
	$pattern="/([?&])$varname=.*?(?=&|#|\z)/";
	if(preg_match($pattern,$gp)){
		$substitution=($value!=='')?"\${1}$varname=".preg_quote($value):'';
		$newgp=preg_replace($pattern,$substitution,$gp);
		$newgp=preg_replace('/^&/','?',$newgp);
	}
	else{
		$s=($gp)?'&':'?';
		$newgp=$gp.$s.$varname.'='.$value;
	}
	$anchor=(isset($matches[3]))?$matches[3]:'';
	$newurl=$matches[1].$newgp.$anchor;
	$newurl=rtrim($newurl,'&');
	$newurl=str_replace('&&','&',$newurl);
	$newurl=str_replace('?&','?',$newurl);
	return $newurl;
}

Использование:
Замена 1 параметра

<a href="<?=sgp($url,'key',$value)?>">test</a>

Удаление 1 параметра

<a href="<?=sgp($url,'key','')?>">test</a>

Замена более 1 параметра

<a href="<?=sgp($url,array('key1','key2'),array($value1,$value2))?>">test</a>

Удаление более 1 параметра

<a href="<?=sgp($url,array('key1','key2'),NULL)?>">test</a>

http://webew.ru/articles/743.webew
http://webew.ru/articles/5510.webew

Categories: PHP Tags:
11 января 2017 Нет комментариев

Например, для случайного значения от 1,08 до 1,15

$x=rand(108,115)/100;
Categories: PHP Tags:
10 октября 2016 Нет комментариев

Оставить уникальные элементы массива, не учитывая регистр, сохранив исходный регистр. Кодировка utf-8.

function strtolower_utf8($a){ 
	return mb_strtolower($a,'UTF-8'); 
}
function array_iunique($array) {
	return array_intersect_key(
		$array,
		array_unique(array_map("strtolower_utf8",$array))
	);
}
$result=array_iunique($result);
Categories: PHP Tags:
26 августа 2016 Нет комментариев
$xml.="\t\t\t\t<param name=\"Фасовка\" unit=\"кг\">".preg_replace('/[^0-9]/','',$db->f('f_116_ru'))."</param>\r\n";
$xml.="\t\t\t\t<param name=\"Фасовка\" unit=\"кг\">".preg_replace('~[^0-9]+~','',$db->f('f_116_ru'))."</param>\r\n";
$xml.="\t\t\t\t<param name=\"Фасовка\" unit=\"кг\">".preg_replace('~\D+~','',$db->f('f_116_ru'))."</param>\r\n";
Categories: PHP Tags: