Архив

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

Лучший вариант:

<?=mb_convert_case($item['name'],MB_CASE_TITLE,'UTF-8')?>

Еще вариант (не тестировался):

function mb_ucfirst($text){
	return mb_strtoupper(mb_substr($text,0,1)).mb_substr($text,1);
}
echo mb_ucfirst(mb_strtolower($str));

Не получится просто преобразовать всю строку в нижний регистр, а затем сделать первую букву заглавной.
Не будет работать для кириллицы:

<?=ucfirst(strtolower($item['name']))?>

Преобразует строку в нижний регистр, но не сделает первую букву заглавной:

<?=ucfirst(mb_strtolower($item['name'],'UTF-8'))?>
Categories: PHP Tags:
11 августа 2016 1 комментарий
function add_nofollow($text){
	return preg_replace('/href="(http:\/\/.*?)"/','href="$1" rel="nofollow"',$text);
}
Categories: PHP Tags:

Генерируем в формате A + id с ведущим нулем (7 цифр)

$ac=get_from_base('*','catalog','1','id');
foreach($ac as $c){
	mysql_query("UPDATE `catalog` SET `code`='A".str_pad($c['id'],7,'0',STR_PAD_LEFT)."' WHERE id='".$c['id']."'");
}

т.е. для товара с id 1458 получим артикул A0001458

Categories: PHP Tags: ,
if(!preg_match_all("|<a.* href=(.*)>(.*)".$word."(.*)</a>|U",$text,$out)){
}

http://phpclub.ru/talk/threads/Замена-слов-ссылками-с-игнорированием-замены-внутри-ссылки.59457/
Полный текст примера из источника:

//Функция замены по маске
function GlossaryFilter($text){
	//Прочли файл
	$glossfile=@file($_SERVER['DOCUMENT_ROOT']."/cache/glossary.txt");
	foreach($glossfile as $mask_word){
		$token=explode("|",$mask_word);
		//Если найдено слово из списка
		if(stristr(trim($text),$token[0])){
			//Проверка присутствие ключевого слова внутри ссылки
			if(!preg_match_all("|<a.* href=(.*)>(.*)".$token[0]."(.*)</a>|U",$text,$out)){
				//Заменяем его на ссылку
				$text=str_replace($token[0],"<a href=\"".trim($token[1])."\" target=\"_blank\">".$token[0]."</a>",$text);
			}
		}
	}
	//Вернули текст
	return $text;
}
Categories: PHP Tags:

В примере нужна реализация 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":"[email protected]","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('[email protected]',$subject,$message,$headers)){
		exit('{"result":true,"id":"'.$data['id'].'","jsonrpc":"2.0"}');
	}
}
exit('{"error":{"code":-32600,"message":"Invalid Request","data":null},"id":null}');
Categories: Web Tags:
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:

В случае если, $_SERVER[‘HTTP_IF_MODIFIED_SINCE’] отсутствует:
.htaccess

RewriteEngine on
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]

php:

session_cache_limiter('private_no_expire');
session_start();
Categories: Web Tags: ,