PHPackages                             toropyga/base - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. toropyga/base

ActiveLibrary

toropyga/base
=============

Base libraries from Toropyga

v1.5.3(2y ago)06961MITPHPPHP &gt;=7.0.0

Since Aug 17Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Toropyga/Base)[ Packagist](https://packagist.org/packages/toropyga/base)[ RSS](/packages/toropyga-base/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (19)Used By (1)

Base library
============

[](#base-library)

Базовые функции PHP "на каждый день".

[![License](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)[![Version](https://camo.githubusercontent.com/b7f59a506acead45496fc6ce958ad69f73180ece6855989cfbbae1b526b7b5a2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d76312e352e332d626c75652e737667)](https://camo.githubusercontent.com/b7f59a506acead45496fc6ce958ad69f73180ece6855989cfbbae1b526b7b5a2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d76312e352e332d626c75652e737667)[![PHP](https://camo.githubusercontent.com/987e19b0139ed88588a842a6aa3581ac727c9997941fd99ca76a3e85efc3f22f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d76375f2d2d5f76382d626c756576696f6c65742e737667)](https://camo.githubusercontent.com/987e19b0139ed88588a842a6aa3581ac727c9997941fd99ca76a3e85efc3f22f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d76375f2d2d5f76382d626c756576696f6c65742e737667)

Содержание
----------

[](#содержание)

- [Общие понятия](#%D0%BE%D0%B1%D1%89%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Подключение](#%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)
- [Функции](#%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8)
    - [Конвертация массива в объект](#%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0-%D0%B2-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82)
    - [Конвертация объекта в массив](#%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0-%D0%B2-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2)
    - [Определение IP адреса](#%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-ip-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0)
    - [Отладочная функция](#%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F)
    - [Проверка пароля](#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F)
    - [Проверка даты](#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%B4%D0%B0%D1%82%D1%8B)
    - [Конвертация текста в заданную кодировку](#%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0-%D0%B2-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%83%D1%8E-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D1%83)
    - [Определение кодировки текста](#%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0)
    - [Экранирование данных](#%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)
    - [Деэкранирование данных](#%D0%B4%D0%B5%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)
    - [Вычисление хэша строки](#%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%85%D1%8D%D1%88%D0%B0-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)
    - [Установка заголовков HEADERS](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2-headers)
    - [Расчёт параметров пагинации](#%D1%80%D0%B0%D1%81%D1%87%D1%91%D1%82-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2-%D0%BF%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8)
    - [Формирование XML из массива](#%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-xml-%D0%B8%D0%B7-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0)
    - [Получение Json или массива из XML](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-Json-%D0%B8%D0%BB%D0%B8-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0-%D0%B8%D0%B7-xml)
    - [Установка Cookie](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-cookie)
    - [Обратимое шифрование строки](#%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D0%BC%D0%BE%D0%B5-%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)

Общие понятия
-------------

[](#общие-понятия)

Класс Base - это набор базовых функций "на каждый день". Для работы необходимо наличие PHP версии 5 и выше.

Установка
---------

[](#установка)

Рекомендуемый способ установки библиотеки NetContent с использованием [Composer](http://getcomposer.org/):

```
composer require toropyga/base
```

или просто скачайте и сохраните библиотеку в нужную директорию.

Подключение
-----------

[](#подключение)

```
require_once("vendor/autoload.php");
```

после этого прописываем

```
use FYN\Base;
```

Функции
-------

[](#функции)

### Конвертация массива в объект

[](#конвертация-массива-в-объект)

(для унификации и удобства)

```
/**
 * @param array $data - массив
 * @return object
 *
 * function ArrayToObj ($data);
 */
```

Пример:

```
$data = Base::ArrayToObj($data);
```

### Конвертация объекта в массив

[](#конвертация-объекта-в-массив)

(для унификации и удобства)

```
/**
 * @param object $data - объект
 * @return array
 *
 * function ObjToArray ($data);
 */
```

Пример:

```
$data = Base::ObjToArray($data);
```

### Определение IP адреса

[](#определение-ip-адреса)

```
/**
 * Возвращает ассоциативный массив с ключами:
 *     'ip'    - текуций IP-адрес
 *     'proxy' - IP-адрес используемого прокси сервера, если возможно определить
 * @return array
 *
 * function getIP ();
 */
```

Пример:

```
$IP = Base::getIP();
```

### Отладочная функция

[](#отладочная-функция)

для вывода на экран или возврата отформатированных данных содержащихся в переданной переменной $array

```
/**
 * @param mixed $array
 * @param bool $print - вывод данных на экран (true/false)
 * @return string
 *
 * function dump ($array = array(), $print = true);
 */
```

Пример:

```
Base::dump($array, true);
или
$dump = Base::dump($array, false);
```

### Проверка пароля

[](#проверка-пароля)

на соответствие условиям безопасности

```
/**
 * @param string $password - проверяемая строка
 * @param int $len - строка имеет длину не менее указанного количества символов
 * @param int $type - тип строки
 *     0 => строка содержит хотя бы одну цифру, хотя бы один спецсимвол, хотя бы одну латинскую букву в нижнем регистре, хотя бы одну латинскую букву в верхнем регистре;
 *     1 => строка содержит хотя бы одну цифру, хотя бы одну латинскую букву в нижнем регистре, хотя бы одну латинскую букву в верхнем регистре;
 *     2 => строка содержит хотя бы одну цифру, хотя бы один спецсимвол, хотя бы одну латинскую букву;
 *     3 => строка содержит хотя бы одну цифру, хотя бы одну латинскую букву;
 *     4 => строка содержит хотя бы одну латинскую букву;
 *     5 => строка содержит хотя бы одну цифру;
 * @return bool
 *
 * function checkPassword ($password, $len = 6, $type = 0);
 */
```

Пример:

```
if (Base::checkPassword ($password, 8, 0)) {
    echo "Valid password";
}
else {
    echo "Password is not valid";
}
```

### Проверка даты

[](#проверка-даты)

на существование

```
/**
 * @param string $date - проверяемая дата
 * @param string $format - формат проверяемой даты, по умолчанию 'd/m/Y H:i:s'
 * @return bool
 *
 * function validateDate($date, $format = 'd/m/Y H:i:s');
 */
```

Пример:

```
$date = '09.08.2020';
$format = 'd.m.Y';
if (Base::validateDate($date, $format)) {
    echo "Valid date";
}
else {
    echo "Wrong date"
}
```

### Конвертация текста в заданную кодировку

[](#конвертация-текста-в-заданную-кодировку)

```
/**
 * @param string $line - строка с текстом
 * @param string $enc - заданная кодировка, utf-8 по умолчанию ('utf-8', 'ascii', 'cp1251', 'KOI8-R', 'CP866', 'KOI8-U' и т.д.)
 *
 * function convertLine ($line, $enc = 'utf-8');
 */
```

Пример:

```
$text = Base::convertLine($line, 'cp1251');
```

### Определение кодировки текста

[](#определение-кодировки-текста)

Работает даже если не отработала функция mb\_detect\_encoding.

```
/**
 * @param string $string - строка с текстом
 * @param int $pattern_size - максимальная длина строки для парсинга
 *
 * function detect_encoding ($string, $pattern_size = 50);
 */
```

Пример:

```
$code = Base::detect_encoding($string);
```

или

```
$code = Base::detect_encoding($string, 100);
```

### Экранирование данных

[](#экранирование-данных)

защищаемся от передачи вредоносных запросов

```
/**
 * @param array|string $array - строка или массив данных
 * @param string $code - кодировка текста, по умолчанию 'utf-8'
 * @return array|string
 *
 * function screeningData ($array, $code = 'utf-8');
 */
```

Пример:

```
$array = Base::screeningData($array, 'cp1251');
```

### Деэкранирование данных

[](#деэкранирование-данных)

```
/**
 * Деэкранирование данных
 * @param array $array
 * @return array|string
 *
 * function unscreeningData($array);
 */
```

Пример:

```
$array = Base::unscreeningData($array);
```

### Вычисление хэша строки

[](#вычисление-хэша-строки)

Предварительно можно задать две глобальные переменные:

- CRYPT\_TYPE - алгоритм шифрования (см. $alg)
- CRYPT\_KEY - ключ шифрования (см. $key)

```
/**
 * @param string $string - строка которая шифруется
 * @param string $alg - алгоритм шифрования (тип используемой функции), по умолчанию md5
 *    'password'         => password_hash($key, PASSWORD_DEFAULT);
 *    'password_bcrypt'  => password_hash($key, PASSWORD_BCRYPT);
 *    'crypt'            => crypt($key);
 *    'crypt_site':      => crypt($key, CRYPT_KEY);
 *    'sha1'             => sha1($key);
 *    'hash'             => hash('sha256', $key);
 *    'md5'              => md5($key);
 * @param string $key - ключ шифрования для алгоритма 'crypt_site'
 * @return bool|string
 *
 * function getKeyHash ($string, $alg = '', $key = '');
 */
```

Пример:

```
$hash = Base::getKeyHash($sfring, 'sha1');
```

или

```
$hash = Base::getKeyHash($sfring, 'crypt_site', 'your_code_word');
```

### Установка заголовков HEADERS

[](#установка-заголовков-headers)

```
/**
 * @param string $type      - тип контента ('text/html', 'application/json', 'text/xml')
 * @param string $CODE      - кодировка текста ('utf-8', 'ascii', 'cp1251', 'KOI8-R', 'CP866', 'KOI8-U', 'ISO-8859-1' и т.д.)
 * @param array $methods    - допустимые методы взаимодействия ('GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'HEAD', 'CONNECT', 'TRACE', 'PATCH')
 * @param string $servers   - сервера с которыми допускается взаимодействие ('*' - любой,  - один источник [https://google.com] , null - нежелательный параметр)
 * @param string $protocol  - протокол передачи данных (http, https, ftp)
 * @param integer $lifetime - "время жизни" страницы при безопасном соединении (https) в секундах
 * @return bool
 *
 * function setHeaders ($type = 'text/html', $CODE = 'utf-8', $methods = array('GET', 'POST', 'OPTIONS'), $servers = '*', $protocol = 'https', $lifetime = 2400);
 */
```

Пример:

```
Base::setHeaders('text/json', 'utf-8', array('GET', 'POST', 'OPTIONS'), '*', 'https', 1200);
```

### Расчёт параметров пагинации

[](#расчёт-параметров-пагинации)

```
/**
 * @param int $sum - общее количество записей
 * @param int $page - текущая страница
 * @param int $res_on_page - количество записей на странице (LIMIT)
 * @param int $pages_show - количество отображаемых закладок
 * @return array
 *      keys (ключи ответа):
 *          sum         - общее количество записей
 *          pages       - общее количество страниц
 *          page        - номер отображаемой страницы
 *          size        - максимальное количество записей на страницу
 *          size_now    - количество записей на текущей странице
 *          begin       - страница с которой начинается текущий отсчёт
 *          end         - страница которой заканчивается текущий отсчёт
 *          forward     - показывать ли быстрый переход в начало (true/false)
 *          back        - показывать ли быстрый переход в конец (true/false)
 *
 * function getPagination ($sum, $page = 1, $res_on_page = 20, $pages_show = 5);
 */
```

Пример:

```
$pagination = Base::getPagination(187, 1, 25, 5);
```

### Формирование XML из массива

[](#формирование-xml-из-массива)

```
/**
 * @param array $array - переданный массив
 * @param string|null $title - имя первичного тэга, по умолчанию 'root'
 * @param bool $first - первое вхождение, поддерживаем внутреннюю цикличность, если обрабатываем массив массивов, то при последующих обращениях не прописываем заголовки
 * @return string
 *
 * function xml_encode ($array, $title = null, $first = true);
 */
```

Пример:

```
$xml = Base::xml_encode ($array, $title, $first);
```

### Получение Json или массива из XML

[](#получение-json-или-массива-из-xml)

```
/**
 * @param string $xml - данные в формате XML
 * @param boolean $array - вернуть как массив (true) или вернуть как Json (false)
 * @return mixed
 *
 * function xml_decode ($xml, $array = true)
 */
```

Пример:

```
$json = Base::xml_decode($xml, false);
```

### Установка Cookie

[](#установка-cookie)

```
/**
 * @param string $text - значение Cookie
 * @param string $name - имя Cookie
 * @param int $live_time - срок действия Cookie в секундах с текущего момента
 * @param string $domain - домен определяет, на каком домене доступен файл Cookie
 * @param boolean $secure - передавать Cookie только по HTTPS-протоколу
 * @param boolean $http_only - запретить любой доступ к Cookie из JavaScript
 * @param string $samesite - установка доступности межсайтовых запросов к Cookie('', 'Strict', 'Lax')
 * @param string $path - URL-префикс пути к Cookie
 *
 * function setCookie ($text, $name, $live_time = 86400, $domain = 'localhost', $secure = true, $http_only = false, $samesite = 'lax', $path = '/')
 */
```

Пример:

```
Base::setCookie ($text, $name, 3600, $domain = 'localhost', true, true);
```

### Обратимое шифрование строки

[](#обратимое-шифрование-строки)

Шифрование

```
/**
 * Шифрование строки
 * Ключ шифрования указывается в настройках
 * @param string $string - шифруемая строка
 *
 * function MEncrypt ($string)
 */
```

Пример:

```
$encoded_text = Base::MEncrypt ('text');
```

Дешифрование

```
/**
 * Дешифрование строки, зашифрованной функцией MEncrypt
 * @param string $ciphertext - дешифруемая строка
 *
 * public function MDecrypt ($ciphertext)
 */
```

Пример:

```
$decoded_text = Base::MEncrypt ($encoded_text);
```

###  Health Score

26

—

LowBetter than 46% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~46 days

Recently: every ~52 days

Total

18

Last Release

889d ago

PHP version history (2 changes)v1.0.0PHP &gt;=5.1.0

v1.5.1PHP &gt;=7.0.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4976fa6e000f720310b0ac6f9a8483699c3f17fd68ab2bf704da91657888b2b1?d=identicon)[Toropyga](/maintainers/Toropyga)

---

Top Contributors

[![Toropyga](https://avatars.githubusercontent.com/u/57900903?v=4)](https://github.com/Toropyga "Toropyga (22 commits)")

### Embed Badge

![Health badge](/badges/toropyga-base/health.svg)

```
[![Health](https://phpackages.com/badges/toropyga-base/health.svg)](https://phpackages.com/packages/toropyga-base)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
