stfn / php-random-string
v1.0.0
2023-03-23 15:53 UTC
Requires
- php: ^8.1
Requires (Dev)
- laravel/pint: ^1.2
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2024-09-21 01:44:54 UTC
README
此包可用于根据您的字符集或预定义字符集生成随机字符串。您可以配置字符串长度、前缀、后缀和字符串数量,或在某些条件下跳过某些字符串...
安装
您可以通过composer安装此包
composer require stfn/php-random-string
用法
基本
无配置的简单示例。
$string = RandomString::new()->generate(); // Output: RIKdjFzuDaN12RiJ
长度定义
您可以控制字符串的长度。默认长度为16个字符。
$string = RandomString::new(6)->generate(); // Output: dzGcot
预定义字符集
如果您想生成只包含数字、小写字母或大写字母的字符串,可以使用预定义字符集。
// Generate string that contains only numbers $config = StringConfig::make() ->numbersOnly(); $string = RandomString::fromConfig($config)->generate(); // Output: 9387406871490781 // Generate string that contains only lowercase letters $config = StringConfig::make() ->lowerCaseOnly(); $string = RandomString::fromConfig($config)->generate(); // Output: hvphyfmgnvbbajve // Generate string that contains only uppercase letters $config = StringConfig::make() ->upperCaseOnly(); $string = RandomString::fromConfig($config)->generate(); // Output: ZIVSUDQHAMDNQAYV
自定义字符集
或者,您可以使用自定义字符集生成随机字符串。
$config = StringConfig::make() ->charset("ABCDEFG1234"); $string = RandomString::fromConfig($config)->generate(); // Output: 3B41B32C2A12A3A1
跳过
有时您可能想要生成随机字符串,但满足特定条件。例如,给我一个不包含此数组的字符串。
$config = StringConfig::make() ->numbersOnly() ->length(6) ->skip(function ($string) { return in_array($string, ["025922", "104923"]); }); $string = RandomString::fromConfig($config)->generate(); // Output: 083712
前缀和后缀
如果您想在生成的字符串中添加前缀或后缀,可以这样做。
$config = StringConfig::make() ->length(6) ->prefix("PRE_") ->suffix("_AFTER"); $string = RandomString::fromConfig($config)->generate(); // Output: PRE_rkM7Jl_AFTER
随机字符串数组
RandomString
可以生成不止一个字符串。
$config = StringConfig::make() ->length(6) ->count(3); $strings = RandomString::fromConfig($config)->generate(); // Output: ["ozBYeT", "BYjCtr", "Sw7O5b"];
唯一性
生成的数组中可能存在不唯一的字符串(虽然很少见,但有可能)。如果您想避免这种情况,只需更改配置即可。
$config = StringConfig::make() ->length(6) ->count(3) ->unique(); $strings = RandomString::fromConfig($config)->generate(); // Output: ["92ONRj", "Me6oym", "WbBPVc"];
一行代码
如果您不想每次都创建2个对象,可以使用 fromArray
方法。
$string = RandomString::fromArray(['length' => 6, 'charset' => 'ABCD1234'])->generate(); // Output: CCDA1D
测试
composer test
安全性
RandomString
类旨在生成随机且不可预测的字符串,但请注意,它不是一个密码学安全的哈希函数,不应用于密码散列或密钥生成等敏感应用。
变更日志
有关最近更改的更多信息,请参阅 变更日志。
致谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件。