Архив / php

RSS лента

Установка php 5.6 на CentOS 6.3

Чтобы поставить php 5.4 на CentOS необходимо подключить дополнительные репозитории:


rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Теперь ставим php из репозитория remi:


yum --enablerepo=remi,remi-test install php php-common php-devel

И добавляем необходимые модули:


yum --enablerepo=remi,remi-test install php-pear php-pdo php-mysql php-gd php-mbstring php-mcrypt php-xml

Также будет полезно установить акселератор, например Alternative PHP Cache:


yum --enablerepo=remi,remi-test install php-pecl-apc

Изменение регистра символов

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

Написал такую функцию:

function lower($str, $charset='UTF-8')
{
	//	Разбиение строки.
	$tmp = explode(' ', $str);

	if (is_array($tmp) && 0 < ($count = count($tmp)))
	{
		for ($i=0;$i<$count;$i++)
		{
			/**
			 * Для определения кириллицы используется тождественное сравнивание,
			 *  т.к. ctype_upper работает некорректно.
			 * 
			 */
			if ($tmp[$i] !== mb_strtolower($tmp[$i], $charset))
			{
				$tmp[$i] = mb_convert_case(mb_strtolower($tmp[$i], $charset), MB_CASE_TITLE, $charset);
			}
		}
	}
	$str = implode(' ', $tmp);
	return $str;
}

Использовать можно так:

$str = 'Записки WEB-ПРОГРАММИСТА';
echo lower($str); // Записки Web-Программиста

Условия в if

В стандартах кодирования в разделе «форматирование блоков if then else» написано, что при сравнении константы необходимо ставить слева, т.е.

if (1 == $var)

Сегодня задумался по поводу сравнения с булевыми константами.
Как лучше писать

if (true === $var)

или использовать восклицательный знак (!)

if (!$var)