gui-don / rico-library
Rico项目库 - PHP库
Requires
- php: >=7.3
- ext-dom: *
- ext-intl: *
- ext-mbstring: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2
- pheromone/phpcs-security-audit: ^2.0
- phpstan/phpstan: ^0.12.0
- phpunit/phpunit: ^9
README
PHP实用库
本项目由一些轻量级且经过良好测试的库组成。
它们在不想导入大量依赖的情况下,提供了访问常用低级别健壮功能的能力。
安装
Composer
composer require gui-don/rico-library
手动安装(带源代码)
将autoload.php
文件导入到您的代码中
require_once('autoload.php');
use \Rico\Lib\StringUtils;
// etc
带Phar的手动安装
- 在发布页面上下载最新Phar文件。
- 将其导入到您的代码中
require_once('phar://rico-lib.phar');
use \Rico\Lib\StringUtils;
// etc
文档
如何 - 过程式风格(在数据对象中推荐使用)
<?php
require_once('autoload.php');
use \Rico\Slib\StringUtils;
// […] Some code
// $uglyString = getUglyString();
$beautifulString = StringUtils::beautifulise($uglyString);
如何 - 面向对象风格(在其他地方推荐使用)
<?php
// autoload Not need if using composer
// require_once('autoload.php');
use \Rico\Lib\StringUtils;
// […] Some code
// $uglyString = $object->getUglyString();
$stringUtils = new StringUtils();
$beautifulString = $stringUtils->beautifulise($uglyString);
缺少一个函数?提交一个拉取请求或简单扩展以下类。
ArrayUtils
库
flatten(array $multidimensionalArray): array
: 从一个多维度数组中提取每个元素到一个单独的列表中。不保留任何键。
// […]
$array = [1, 2, 3], ['test' => 2], [], [2, 5, 6, 7]];
var_dump(ArrayUtils::flatten($array));
// Result: [1, 2, 3, 2, 2, 5, 6, 7]
insert($needle, int $index, array $haystack): array
: 在 $haystack 中 $index 位置插入一个元素 $needle,保持顺序并移动其他元素。不保留任何键。
// […]
$needle = 'replace';
$index = 10;
$haystack = [0 => 'zero', 10 => 'misplaced', 14 => 'next'];
var_dump(ArrayUtils::insert($needle, $index, $haystack));
// Result: [0 => 'zero', 1 => 'replace', 2 => 'misplaced', 3 => 'next']
orderByOccurrence(array $array): array
: 根据数组中每个元素的出现次数对 $array 的值进行排序。适用于任何类型。去重。
// […]
$array = [1, 2, 3, 4, 5, 4, 5, 4];
var_dump(ArrayUtils::orderByOccurrence($array));
// Result: [4, 5, 1, 2, 3]
transpose(array $similarArrays): array
: 将多个 $similarArrays 转换为键值数组。
// […]
$similarArrays = ['first' => 1, 'second' => 2, 'third' => 3], ['first' => 1], ['first' => 1, 'third' => 3, 'second' => 2];
var_dump(ArrayUtils::transpose($similarArrays));
// Result: ['first' => [1, 1, 1], 'second' => [2, 2], 'third' => [3, 3]]
FileUtils
库
addLine($file, $line)
: 在 $file 的末尾添加一个新行而不重复。count($file, $countEmpty = false)
: 计算一个文件中的行数。extractExtension(string $filename)
: 从一个文件名中提取扩展名(不带点)或从路径中提取。
FilesystemUtils
库
createPath($path)
: 创建完整的 $path,包括所有缺失的中间目录。createSymlink($link, $path)
: 创建一个指向 $file 的符号链接。listDirectory($path, $option)
: 获取 $path 内的文件名和文件夹名(根据 $option)。
StringUtils
库
alphaToId($string, $secret)
: 将一个字母字符串转换为标识符(一个整数)。beautifulise($uglyString)
: 将一个丑陋的字符串(带有不正确的标点符号)转换为美丽的字符串(带有正确的标点符号)。humanFilesize($bytes)
: 获取 $bytes 大小的人类可读字符串。idToAlpha($integer, $secret)
: 将一个标识符转换为一个字母数字字符串。minify(string $string)
: 从 $string 中移除空格、换行符和注释。normalize($string)
: 清理 $string,通过删除多空格、换行符、缩进和HTML标签。normalizeWhitespace($string)
: 将 $string 中的所有类型的空格(制表符、空格、非断行等)替换为一个简单空格。randString($length, $allowedChars)
: 生成一个由 $allowedChars 组成的长度为 $length 的随机字符串。removeBracketContent($string)
: 从 $string 中移除括号及其内容。removeLine($string)
: 从 $string 中移除所有类型的换行符。removeWhitespace($string)
: 从 $string 中移除所有类型的空格。slugify($string)
: 将 $string 转换为只包含ascii字符并由短横线分隔的字符串。underscoreToSpace($string)
: 将 $string 中的下划线替换为空格。
ValidationUtils
库
isEmail($mixed)
: 检查 $mixed 值是否为电子邮件。isHexadecimal($mixed)
: 检查 $mixed 值是否为十六进制值。isIp($mixed)
: 检查 $mixed 值是否为IP(v4或v6)。isNumber($mixed)
:检查$mixed值是否为十进制数(浮点数或整数)。isPhoneNumber($string)
:检查$string值是否为电话号码。isPositiveInt($mixed)
:检查$mixed值是否为正整数(主键)。isURL($mixed)
:检查$mixed值是否为URL。isURLMagnet($mixed)
:检查$mixed值是否为磁力链接URL。
MathUtils
库
smartRound($number, $idealLength)
:将$number四舍五入,只有当$number的整数部分小于$idealLength时才添加小数部分。
UrlUtils
库
getResourceName($url)
:从$url中获取资源的名称(图像、pdf等)。stripResourceName($url)
:获取没有资源的URL(图像、pdf等)。