Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP7中文件的随机名称_Php_Php 7.1 - Fatal编程技术网

PHP7中文件的随机名称

PHP7中文件的随机名称,php,php-7.1,Php,Php 7.1,如何为php7中的文件生成随机名称random_bytesus返回符号,如ццñ.png我还可以使用什么其他功能 编辑:我想我可以使用uniqueid(),但它不是有点旧吗?您可以修改随机字节的输出,将其限制在可打印字符范围内 例如: // Ascii 126=~, 32=[space], so the lower ASCII printable block define('RANDOMIZVI_RANGE_DEFAULT', 126-32); function randomizvi(int

如何为php7中的文件生成随机名称
random_bytes
us返回符号,如
ццñ.png
我还可以使用什么其他功能


编辑:我想我可以使用uniqueid(),但它不是有点旧吗?

您可以修改
随机字节的输出,将其限制在可打印字符范围内

例如:

// 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;
}
//Ascii 126=~,32=[space],因此下面的Ascii可打印块
定义('RANDOMIZVI_RANGE_DEFAULT',126-32);
函数randomizvi(int$length,$range=randomizvi_range_默认值){
$bytes=随机字节($length);
对于($i=0;$i<$length;$i++){
$bytes[$i]=chr((ord($bytes[$i])%$range)+32);
}
返回$bytes;
}
这是一种粗糙的解决方案,但它有效。请注意,此特定实现将稍微偏向某些字符


如果您真的不需要随机文件名,只需对它们进行编号可能会更简单,这样可以避免冲突的可能性。

使用uniqid()没有什么错。它没有被弃用或其他什么。您还可以说,
echo
太旧了。尽管如此,wrt uniqid-“此函数不会创建随机或不可预测的字符串。此函数不得用于安全目的。”-因此,应使用“随机”的要求来选择解决方案。。