dogeow/php-helpers 的 API 文档按模块分组整理在这里。
返回数组中不重复的两两组合。
参数:
$array: 输入数组。
返回:
array: 形如[['a', 'b'], ['a', 'c'], ['b', 'c']]的组合结果。
说明:
- 不会生成
['a', 'b']和['b', 'a']两份。 - 不会把同一个元素和自己组合。
示例:
Arr::combinationOfTwoNumbers(['a', 'b', 'c']);
// [['a', 'b'], ['a', 'c'], ['b', 'c']]判断二维数组中是否存在与目标数组严格相等的一项。
参数:
$array: 二维数组。$item: 要匹配的数组项。
返回:
bool
说明:
- 使用严格相等比较,顺序不同视为不同数组。
把字节数字符串格式化为可读大小。
参数:
$size: 非负整数字符串,例如'1024'。$base: 进位基数,常用1024或1000。$delimiter: 数字和单位之间的分隔符。
返回:
string
异常:
InvalidArgumentException: 当$size不是非负整数字符串,或$base <= 1。
示例:
Str::bytesForHuman('5200'); // 5.08KB
Str::bytesForHuman('1536', 1024, ' '); // 1.5 KB把十进制非负整数字符串转换为目标进制字符串。
参数:
$number: 非负整数字符串。$targetBit: 目标进制字符串,范围2到36。
返回:
string
异常:
InvalidArgumentException: 输入格式非法,或目标进制不在2..36。
示例:
Str::baseConvert('10', '36'); // A把 RGB 值转换为十六进制颜色。
参数:
$r,$g,$b: 颜色通道值,超出范围会被截断到0..255。
返回:
string: 例如#ff0000
获取图片平均主色。
参数:
$imgUrl: 本地路径或可读取的图片路径。$isHex:true返回十六进制颜色,false返回rgb(r, g, b)。
返回:
string
说明:
- 实际委托给
Image::getMainColor()。 - 读取失败时返回黑色默认值。
读取 URL 或文件内容并提取 <title>。
参数:
$url: 可被file_get_contents()读取的地址或路径。
返回:
string|false: 成功返回标题,失败或无标题时返回false。
截取两个边界之间的内容。
参数:
$string: 原字符串。$start: 开始边界。$end: 结束边界。
返回:
string
说明:
- 任一边界不存在时返回空字符串。
- 返回结果不包含开始和结束边界本身。
移除常见 emoji 和符号字符。
参数:
$str: 输入字符串。
返回:
string
根据生日字符串返回星座。
参数:
$birthday: 可被strtotime()解析的日期字符串。
返回:
string
说明:
- 解析失败时返回空字符串。
把 HTML 中的 <br> 标签转换成换行符。
参数:
$input: HTML 字符串。
返回:
string
说明:
- 会先做
htmlspecialchars_decode()。 - 会移除原始
\r和\n后再替换<br>。
从 HTML 字符串中提取 <title> 内容。
参数:
$html: HTML 字符串。
返回:
string
说明:
- 未匹配到标题时返回空字符串。
从 HTML 中提取 favicon 地址,并归一化为完整 URL。
参数:
$html: HTML 字符串。$url: 当前页面 URL,用于补全相对地址。
返回:
string
说明:
- 支持
rel="icon"和rel="shortcut icon"。 - 找不到时返回当前站点默认
/favicon.ico。
为缺少协议的地址补上 https://。
参数:
$url: URL 字符串。
返回:
string
示例:
Url::normalizeHttpUrl('example.com'); // https://example.com把 favicon 地址归一化为完整 URL。
参数:
$favicon: favicon 地址,支持绝对 URL、协议相对 URL、绝对路径、相对路径。$baseUrl: 页面 URL。
返回:
string
返回站点默认 favicon 地址。
参数:
$url: 页面 URL。
返回:
string
示例:
Url::defaultFaviconUrl('https://example.com/page');
// https://example.com/favicon.ico把字节数格式化为带单位的字符串。
参数:
$bytes: 字节数,负数按0处理。
返回:
string
示例:
File::formatBytes(1536); // 1.5 KB获取文件大小。
参数:
$filePath: 文件路径。
返回:
int|false: 文件存在时返回字节数,否则返回false。
获取文件可读大小。
参数:
$filePath: 文件路径。
返回:
string
说明:
- 文件不存在时返回
'0 B'。
判断路径是否存在、可读、且大小大于 0。
参数:
$filePath: 文件或目录路径。
返回:
bool
说明:
- 对目录同样会基于
filesize()结果进行判断。
确保目录存在,不存在时递归创建。
参数:
$directoryPath: 目录路径。$permissions: 创建权限。
返回:
bool
获取图片平均主色。
参数:
$imgPath: 图片路径。$asHex:true返回十六进制,false返回rgb(...)。
返回:
string
说明:
- 读取失败、格式不支持或 GD 无法创建图片资源时,返回黑色默认值。
把 RGB 转为十六进制颜色。
参数:
$r,$g,$b: 颜色通道值,超出范围会截断到0..255。
返回:
string
按自定义规则计算字符长度。
参数:
$text: 输入文本。
返回:
int
规则:
- 中文字符记
2 - emoji 记
2 - 数字、字母、普通符号、空格记
1 - 国旗 emoji 这种双 code point 组合按
2计
参数:
$text: 输入文本。$maxLength: 最大允许长度。
返回:
bool
参数:
$text: 输入文本。$minLength: 最小允许长度。
返回:
bool
判断中国大陆手机号运营商。
参数:
$number: 11 位纯数字手机号。
返回:
string:中国移动、中国联通、中国电信或未知
说明:
- 输入不合法时返回
未知。
判断是否虚拟运营商号码。
参数:
$number: 11 位纯数字手机号。
返回:
bool
说明:
- 输入不合法时返回
false。
判断字符串是否是合法 IP 地址。
参数:
$ip: 输入 IP。
返回:
bool
生成阿里云 OSS 文字水印 URL。
参数:
$text: 水印文本。$url: 原图 URL。$options: 可选配置。
支持的 $options:
size: 字号,默认45color: 颜色,默认FFFFFFopacity: 透明度,默认50
返回:
string
说明:
- 会先移除文本中的 emoji。
- 返回结果是带
x-oss-process=image/watermark,...参数的 URL。