Настройка опций в файле .htaccess

Директивы необходимо добавлять в самый конец или в самое начало файла, вне блоков кода <IfModule>…</IfModule>.

apc.cache_by_default

APC — акселератор PHP, использование которого увеличивает производительность интерпретатора за счет кэширования. В отдельных случаях, однако, может потребоваться его отключение — например, если скрипты не выполняются корректно из-за переполнения кэша.

Управление APC осуществляется директивами:

php_flag apc.cache_by_default on
php_flag apc.cache_by_default off

default_charset

Директива указывает кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц.

AddDefaultCharset cp1251
php_value default_charset cp1251

display_errors

Директива указывает, требуется ли выводить ошибки на экран вместе с остальным выводом, либо ошибки должны быть скрыты от пользователя.

Включение и выключение осуществляются следующим образом:

php_value display_errors 0
php_value display_errors 1

log_errors

Опция позволяет включить логирование ошибок php с их записью в произвольный файл (в примере errors.log). При указании пути к файлу замените u и user на первую букву Вашего логина и сам логин.

php_value log_errors on
php_value error_log /home/u/user/путь_к_файлу/errors.log

magic_quotes_gpc

Волшебные кавычки (Magic Quotes) — это процесс автоматического экранирования входящих данных PHP-скрипта. Если опция включена, то одинарные (‘) и двойные («) кавычки  и обратный слэш (\)экранируются обратным слэшем автоматически.

Включение и выключение magic_quotes осуществляется директивами:

php_flag magic_quotes_gpc on
php_flag magic_quotes_gpc off

mail.add_x_header

Опция позволяет включить логирование отправки почты из скриптов сайта. Логи будут содержать полный путь до скрипта, адрес получателя и заголовки. При указании пути к файлу, в который будут записываться логи (mail.log), замените u и user на первую букву Вашего логина и сам логин.

php_value mail.add_x_header 1
php_value mail.log /home/u/user/public_html/mail.log

max_input_vars

Директива указывает, сколько входных переменных может быть принято в одном запросе. Например:

php_value max_input_vars 11000

mbstring.func_overload и mbstring.internal_encoding

Чаще всего к данным функциям требуется обращаться для настройки корректной работы сайтов на CMS Битрикс. В этом случае должны быть указаны следующие параметры:

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

При этом для большинства других CMS необходимы иные значения этих функций:

php_value mbstring.func_overload 0
php_value mbstring.internal_encoding UTF-8

opcache.revalidate_freq

Отключение OpCache (настройка требуется для CMS Битрикс):

php_value opcache.revalidate_freq 0

pcre.recursion_limit

Устанавливает лимит на рекурсию.

php_value pcre.recursion_limit 
14000

post_max_size

Опция устанавливает максимально допустимый размер данных, отправляемых методом POST. Также это значение также влияет на загрузку файлов — для загрузки больших файлов оно должно быть больше значения директивы upload_max_filesize.

php_value post_max_size 40M

register_globals

Директивы для включения/выключения глобальных переменных:

php_flag register_globals on
php_flag register_globals off

request_order

Директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST.

php_value request_order GPC

upload_max_filesize

Устанавливает максимальный размер закачиваемого файла.

php_value upload_max_filesize 30M

Html формы с полем отправки файла на Email

Html формы с полем отправки файла представлен ниже. При клике по кнопке »

browse

» пользователь получает возможность выбрать файл на своей локальной машине. Читать далее Html формы с полем отправки файла на Email

Получить атрибут href ссылки на PHP | Web-Answers.Ru

Регулярные выражения для парсинга HTML — не очень удобная штука. Лучше воспользоваться встроенным в PHP объектом DOM, он сделает Ваш код более простым, быстрым и надёжным:

Код:

$dom = new DOMDocument;

$dom->loadHTML($html);

foreach ($dom->getElementsByTagName(‘a’) as $node) {

echo $dom->saveHtml($node), PHP_EOL;

}

Этот код выведет HTML-код всех ссылок, которые находятся в переменной $html.

Для работы с атрибутами есть следующие функции.

Проверить, существует ли атрибут href у Вашей ссылки:

Код:

if($node->hasAttribute( ‘href’ )) {

// …

}

Вывести значение атрибута href:

Код:

1

echo $node->getAttribute( ‘href’ );

Изменить значение атрибута href:

Код:

$node->setAttribute(‘href’, ‘something else’);

Удалить атрибут href:

Код:

$node->removeAttribute(‘href’);

А ещё можно работать с HTML-атрибутами непосредственно из XPath:

Код:

 

$dom = new DOMDocument;

$dom->loadHTML($html);

$xpath = new DOMXPath($dom);

$nodes = $xpath->query(‘//a/@href’);

foreach($nodes as $href) {

echo $href->nodeValue;                       // выводим значение атрибута

$href->nodeValue = ‘new value’;              // задаём новое значение атрибута

$href->parentNode->removeAttribute(‘href’);  // удаляем атрибут

}

Источник: Получить атрибут href ссылки на PHP | Web-Answers.Ru.

Сумма прописью на php

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

static function num2str($num) {
 $nul='ноль';
 $ten=array(
 array('','один','два','три','четыре','пять','шесть','семь', 'восемь','девять'),
 array('','одна','две','три','четыре','пять','шесть','семь', 'восемь','девять'),
 );
 $a20=array('десять','одиннадцать','двенадцать','тринадцать','четырнадцать' ,'пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать');
 $tens=array(2=>'двадцать','тридцать','сорок','пятьдесят','шестьдесят','семьдесят' ,'восемьдесят','девяносто');
 $hundred=array('','сто','двести','триста','четыреста','пятьсот','шестьсот', 'семьсот','восемьсот','девятьсот');
 $unit=array( // Units
 array('копейка' ,'копейки' ,'копеек', 1),
 array('рубль' ,'рубля' ,'рублей' ,0),
 array('тысяча' ,'тысячи' ,'тысяч' ,1),
 array('миллион' ,'миллиона','миллионов' ,0),
 array('миллиард','милиарда','миллиардов',0),
 );
 //
 list($rub,$kop) = explode('.',sprintf("%015.2f", floatval($num)));
 $out = array();
 if (intval($rub)>0) {
 foreach(str_split($rub,3) as $uk=>$v) { // by 3 symbols
 if (!intval($v)) continue;
 $uk = sizeof($unit)-$uk-1; // unit key
 $gender = $unit[$uk][3];
 list($i1,$i2,$i3) = array_map('intval',str_split($v,1));
 // mega-logic
 $out[] = $hundred[$i1]; # 1xx-9xx
 if ($i2>1) $out[]= $tens[$i2].' '.$ten[$gender][$i3]; # 20-99
 else $out[]= $i2>0 ? $a20[$i3] : $ten[$gender][$i3]; # 10-19 | 1-9
 // units without rub & kop
 if ($uk>1) $out[]= self::morph($v,$unit[$uk][0],$unit[$uk][1],$unit[$uk][2]);
 } //foreach
 }
 else $out[] = $nul;
 $out[] = self::morph(intval($rub), $unit[1][0],$unit[1][1],$unit[1][2]); // rub
 $out[] = $kop.' '.self::morph($kop,$unit[0][0],$unit[0][1],$unit[0][2]); // kop
 return trim(preg_replace('/ {2,}/', ' ', join(' ',$out)));
 }

 /**
 * Склоняем словоформу
 * @ author runcore
 */
 private function morph($n, $f1, $f2, $f5) {
 $n = abs(intval($n)) % 100;
 if ($n>10 && $n<20) return $f5;
 $n = $n % 10;
 if ($n>1 && $n<5) return $f2;
 if ($n==1) return $f1;
 return $f5;
 }

PHP, округление до десятков и сотен в большую сторону

Чтобы цена товара в интернет-магазине не была отпугивающей для посетителя, иногда нужно округлить её до целых десятков. Например, 113 руб до 120 руб, 458 руб до 460 руб.
В PHP есть готовые функции округления ceil и round, но в исходном виде для текущей задачи они не совсем подходят.
Так что кусочек простого и понятного кода вам в помощь:

$p = 112.12; // 112 рублей 12 копеек
 echo ceil($p/10) * 10; // 120 рублей ровно

если 10 сменить на 100, то получим округление до сотен и цена 112.12 превратится в 200 рублей.

Парсер товаров и изображений с сайта магазина Forum

Тем, кто задумал делать интернет магазин, а товары заполнять ручками лень, вот, пожалуйста: Читать далее Парсер товаров и изображений с сайта магазина Forum

Краткая форма условного оператора

Условный оператор 

(?:)

 представляет собой компактную форму инструкции условия 

if

.

Синтаксис:


expression ? true_value : false_value

Выполнение этой инструкции начинается с операнда 

expression

. Если значение выражения 

expression

 истинно (true), то возвращается значение выражения 

true_value

, иначе возвращается 

false_value

.

В приведенном ниже примере выполняется выбор наименьшего из двух значений. Если значение 

a

 меньше 

b

, то возвращается 

a

, иначе возвращается 

b

.


min = (а &lt; b ? a : b);

Примеры использования условного оператора

Обычная форма записи условного оператора:


echo 'Число ';
if ($number &lt; 0) echo 'отрицательное';
else echo 'положительное';

Компактная форма записи более удобна:


echo 'Число '.($number &lt; 0 ? 'отрицательное' : 'положительное');