Skip to content

Instantly share code, notes, and snippets.

@insideone
insideone / index.php
Last active April 19, 2023 12:02
PHP date: вывод даты с русским названием месяца и возможностью склонения
<?php
function rdate($format, $timestamp = null, $case = 0)
{
if ($timestamp === null)
$timestamp = time();
static $loc =
'Январ,ь,я,е,ю,ём,е
Феврал,ь,я,е,ю,ём,е
@insideone
insideone / IBlock.php
Last active March 17, 2017 10:59
Bitrix: Быстрое обновление множества элементов инфоблока
<?php
class IBlock
{
static function GetSQLTypeByPropType($propType)
{
static $sqlTypeByPropType = array(
'G' => 'INT',
'S' => 'CHAR(255)',
'N' => 'INT',
@insideone
insideone / Stem.php
Last active May 15, 2016 13:20
PHP: Стеммер на базе алгоритма Портера, определение основы слова
<?php
//
//
// Porter's Stemming inside edition v. 1.0
// thx: Vovan-VE
//
define('RVRE', '/^((?:пере|обез|обес|недо|пред|противо)*.*?[аеиоуыэюя])(.*)$/u');
define('PERFECTIVEGROUND', '/(ив|ивши|ившись|ыв|ывши|ывшись|вшись|авший|авшое|авшись|явшись|авши|явши)$/u');
define('REFLEXIVE', '/(ь?с[яь])$/u');
@insideone
insideone / rand_string.php
Created May 15, 2016 13:24
PHP: rand_string
<?php
/**
* Возвращает строку с случайными буквами английского алфавита и цифрами установленной длины
* @param int $lenght Необходимая длина
*/
function rand_string($lenght = 32)
{
$N = 1 + (int)($lenght / 30);
for ($i = 0; $i < $N; $i++)
@insideone
insideone / array_num_flip.php
Created May 15, 2016 13:25
PHP: array_num_flip
<?php
/**
* Меняет местами значения и ключи для не-ассоциативных ключей
* @param array $ar Входной массив
* @param bool $keepValue Оставить ли в качестве значений перевернутой части числовые ключи?
* @param string $replacementValue Если $keepValue = false, то данный параметр задаёт новые значения для перевернутой части массива
* return array Выходной массив
*/
function array_num_flip($ar, $keepValue = false, $replacementValue = '')
@insideone
insideone / array_filter_key.php
Created May 15, 2016 13:26
PHP: array_filter_key
<?php
/**
* @param array $ar Фильтруемый массив
* @param string $callback Имя функции-фильтра
* return array Результирующий массив
*/
function array_filter_key($ar, $callback = 'empty')
{
$ar = (array)$ar;
@insideone
insideone / xsort.php
Created May 15, 2016 13:27
PHP: xsort
<?php
define('TABLE_SORT_ASC', 0);
define('TABLE_SORT_DESC', 1);
/**
* Сортирует массив по ключу который может лежать глубоко внутри
* @param array $data Массив который нужно отсортировать
* @param string $sortpath Путь к значению по которому должна вестись сортировка
*/
@insideone
insideone / example.php
Last active May 15, 2016 13:29
PHP: uptemplate
<?php
echo untemplate('Привет, #WHO#!', array('WHO' => 'Мир')); // Привет, Мир!
@insideone
insideone / syspath.php
Last active May 15, 2016 13:36
PHP: webpath/syspath
<?php
/**
* Получает имя файла относительно корня сайта
* @param string $syspath Полное имя файла
*/
function syspath($webpath)
{
return preg_match('~^('.$_SERVER['DOCUMENT_ROOT'].')~', $webpath) ? $webpath : $_SERVER['DOCUMENT_ROOT'].$webpath;
}
@insideone
insideone / pt.php
Created May 15, 2016 13:33
PHP: вывод массива в виде таблицы (рекурсивно)
<?php
function pt($data, $openTree = true, $maxLevel = 0, $path = array())
{
$level = count($path);
static $id = 0;
if ( $level == 0 )
$id++;
?>