Распечатать этот пост

Установка APC Opcode Cache

Примечание: если вы используете PHP версии 5.3 и выше, рекомендуется устанавливать Zend OPcache так как он более эффективен.

Установка

Переходим на сайт и скачиваем последнюю версию APC http://pecl.php.net/get/APC либо воспользуемся wget-ом, как показано ниже.

$ wget http://pecl.php.net/get/APC
$ apt-get install build-essential libpcre3-dev
$ tar -xvzf APC-3.1.13.tgz
$ cd APC-3.1.13
$ ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/bin/php-config
$ make
$ make test
$ make install

Чтобы отредактировать конфигурацию APC (по ссылке все возможные функции с описанием), редактируем файл /etc/php5/conf.d/apc.ini, ниже приведен пример:

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Еще не оценили)
Загрузка...

Распечатать этот пост

Установка PHP Zend OPcache

Если вы используете PHP 5.5 и выше то, возможно, Zend OPcache уже установлен. Для проверки запустим командочку php -v:

$ php -v
PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Допустим, мы используем версию PHP 5.3.10, естественно у нас нет OPcache и нам нужно его установить. Делаем как указано ниже (естественно все из под root или через sudo):

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Еще не оценили)
Загрузка...

Распечатать этот пост

Увеличить время выполнения скрипта (PHP)

Увеличить время выполнения скрипта можно четырьмя способами. Два способа при помощи PHP функций (set_time_limit(int seconds) и ini_set(string varname, string newvalue)), при помощи настроек файла php.ini или использования файла .htaccess.

set_time_limit()

Самый простой и быстрый способ использовать вначале выполнения скрипта функции void set_time_limit( int seconds ), которая меняет значение параметра max_execution_time, установленное в файле php.ini (Значение устанавливается в секундах, по-умолчанию 30 секунд).
Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (7 голосов, в среднем: 5,00 из 5)
Загрузка...

Распечатать этот пост

Несколько ошибок с PHP версии 5.3 и выше

Замечено было 2 ошибки в плагине Ajaxfilemanager для TinyMCE при работе на хосте с PHP версии 5.3 и выше.

Первая

перестали отображаться превью залитых картинок с расширением JPG

Исправление

В файле /admin/ajaxfilemanager/inc/class.image.php

в функцию

function _isSupported($filename, $extension, $function, $write = false)

добавить код

if (PHP_VERSION_ID >= 50300 && strtolower($extension) == "jpg") $extension = "JPEG";

Получится вот так:

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 голосов, в среднем: 3,50 из 5)
Загрузка...

Распечатать этот пост

Пару полезных вещей на PHP

Что бы не забыть, пару функций

Удалить из массива элементы с определенным значением

$arr = array(2, 3, 4, 2, 5, 2);
function delEl($arr, $del) {
   foreach($arr as $val)  { if($val !== $del) $newArr[] = $val; }
   return $newArr;
}
// Пример
$checkDelEl = delEl($arr, 2);  // Удалим все "2" из массива $arr
print_r($checkDelEl);  // Array ( [0] => 3 [1] => 4 [2] => 5 )

Выковырять ссылки изображений

preg_match_all('/<img[^>]+src=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/',$content,$matches);
print_r($matches[2]);

Выводим результат из массива:

if ($matches[2][0]!='') {
   echo "<img src='".$matches[2][0]."' alt=''/>";
}

где:
$content — может быть спарсеный код который содержит изображения.

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 голосов, в среднем: 5,00 из 5)
Загрузка...

Распечатать этот пост

Генератор паролей

<?php
function gen_pass($n) {
	$arr = array('q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l',
		'z','x','c','v','b','n','m','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F',
		'G','H','J','K','L','Z','X','C','V','B','N','M',
		'1','2','3','4','5','6','7','8','9','0');
	$pass = '';
	for($i=0;$i<=$n;$i++) {
		$index = rand(0, count($arr) -1);
		$pass .= $arr[$index];
	}
	return $pass;
}
 
	echo gen_pass(5); //указываем сколько символов в пароле
?>
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 голосов, в среднем: 4,50 из 5)
Загрузка...

Распечатать этот пост

Получение суммы прописью

/**
 * Возвращает сумму прописью
 * @author runcore
 * @uses morph(...)
 */
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[]= morph($v,$unit[$uk][0],$unit[$uk][1],$unit[$uk][2]);
        } //foreach
    }
    else $out[] = $nul;
    $out[] = morph(intval($rub), $unit[1][0],$unit[1][1],$unit[1][2]); // rub
    $out[] = $kop.' '.morph($kop,$unit[0][0],$unit[0][1],$unit[0][2]); // kop
    return trim(preg_replace('/ {2,}/', ' ', join(' ',$out)));
}

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Еще не оценили)
Загрузка...

Распечатать этот пост

Удалить из документа все HTML-теги

<?php 
// $document на выходе должен содержать HTML-документ. 
// Необходимо удалить все HTML-теги, секции javascript, 
// пробельные символы. Также необходимо заменить некоторые 
// HTML-сущности на их эквивалент. 

$search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript 
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги 
                 "'([\r\n])[\s]+'",                 // Вырезает пробельные символы 
                 "'&(quot|#34);'i",                 // Заменяет HTML-сущности 
                 "'&(amp|#38);'i", 
                 "'&(lt|#60);'i", 
                 "'&(gt|#62);'i", 
                 "'&(nbsp|#160);'i", 
                 "'&(iexcl|#161);'i", 
                 "'&(cent|#162);'i", 
                 "'&(pound|#163);'i", 
                 "'&(copy|#169);'i", 
                 "'&#(\d+);'e");                    // интерпретировать как php-код 

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Еще не оценили)
Загрузка...

Распечатать этот пост

Закругление углов у изображения

Хочу написать метод закругления краев у картинки. В итоге мы должны получить что-то похожее на то что написано в статье Наложение изображений на PHP, но заменим библиотеку GD на Imagick.

Плюс данного метода в том, что не нужно подготавливать 2 разных картинки и потом их «склеивать»/«смешивать», все делается на лету.

Вот код который это реализует с небольшими коментами:

<?php
/* задаем изображение над которым производим манипуляции */
$image = $_SERVER['DOCUMENT_ROOT'].$_GET['argv'];
/* считываем изображение над которым производим манипуляции */
$im = new Imagick( $image );

Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (13 голосов, в среднем: 5,00 из 5)
Загрузка...

Распечатать этот пост

Заглушка для ie6. Ваш браузер устарел.

С учетом стремительного роста интернет технологий старые (устаревшие) браузеры могут некорректно отображать вашу страничку. К такому браузеру относится и Internet Explorer 6, который не может предоставить все возможности, которые могут предоставить современные браузеры, а скорость его работы в несколько раз ниже!

Сервисы Google (Google Docs, Google Sites, Google Apps, Youtube), социальная сеть В Контакте так же постепенно уходят от IE6 и уже поставили необходимые заглушки с предложением пользователю перейти на более новые (современные) браузеры. С 2010 года, уже сама Microsoft активно начала рекомендовать пользователям отказаться от IE6. Бедный ослик…
Узнать больше

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (28 голосов, в среднем: 5,00 из 5)
Загрузка...