php 7 中文件的随机名称
Random names for files in php 7
如何为 php7 中的文件生成随机名称? random_bytes
我们返回像 _шИ ¶.png
这样的符号我还可以使用什么其他功能?
编辑:我想我可以使用 uniqueid() 但它是不是有点旧?
您可以修改 random_bytes
的输出以将其限制在可打印字符范围内。
示例:
// Ascii 126=~, 32=[space], so the lower ASCII printable block
define('RANDOMIZVI_RANGE_DEFAULT', 126-32);
function randomizvi(int $length, $range = RANDOMIZVI_RANGE_DEFAULT){
$bytes = random_bytes($length);
for($i = 0;$i < $length;$i++){
$bytes[$i] = chr((ord($bytes[$i]) % $range) + 32);
}
return $bytes;
}
这是一种粗略的解决方案,但它确实有效。请注意,此特定实现会略微偏向某些字符。
如果您真的不需要随机文件名,只给它们编号可能会更简单,这样可以避免冲突的可能性。
如何为 php7 中的文件生成随机名称? random_bytes
我们返回像 _шИ ¶.png
这样的符号我还可以使用什么其他功能?
编辑:我想我可以使用 uniqueid() 但它是不是有点旧?
您可以修改 random_bytes
的输出以将其限制在可打印字符范围内。
示例:
// Ascii 126=~, 32=[space], so the lower ASCII printable block
define('RANDOMIZVI_RANGE_DEFAULT', 126-32);
function randomizvi(int $length, $range = RANDOMIZVI_RANGE_DEFAULT){
$bytes = random_bytes($length);
for($i = 0;$i < $length;$i++){
$bytes[$i] = chr((ord($bytes[$i]) % $range) + 32);
}
return $bytes;
}
这是一种粗略的解决方案,但它确实有效。请注意,此特定实现会略微偏向某些字符。
如果您真的不需要随机文件名,只给它们编号可能会更简单,这样可以避免冲突的可能性。