在php中为文件名生成随机字符串
发布时间:2020-12-13 13:05:59 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 PHP: How to generate a random,unique,alphanumeric string?24个 我如何创建随机文本字符串以用于文件名? 我正在上传照片并在完成后重命名.所有照片都将存储在一个目录中,因此它们的文件名必须是唯一的. 有这样做的标准方法吗? 有没有办法在
参见英文答案 >
PHP: How to generate a random,unique,alphanumeric string?24个
我如何创建随机文本字符串以用于文件名? 我正在上传照片并在完成后重命名.所有照片都将存储在一个目录中,因此它们的文件名必须是唯一的. 有这样做的标准方法吗? 有没有办法在尝试覆盖之前检查文件名是否已经存在? 这是为了一个单一的用户环境(我自己)在我的网站上显示我的个人照片,但我想自动化一点.我不需要担心两个用户同时尝试上传和生成相同的文件名,但我确实想检查它是否已经存在. 我知道如何上传文件,我知道如何生成随机字符串,但我想知道是否有一种标准的方法. function random_string($length) { $key = ''; $keys = array_merge(range(0,9),range('a','z')); for ($i = 0; $i < $length; $i++) { $key .= $keys[array_rand($keys)]; } return $key; } echo random_string(50); 输出示例: zsd16xzv3jsytnp87tk7ygv73k8zmr0ekh6ly7mxaeyeh46oe8 编辑 在目录中使这个唯一,在这里更改为函数: function random_filename($length,$directory = '',$extension = '') { // default to this files directory if empty... $dir = !empty($directory) && is_dir($directory) ? $directory : dirname(__FILE__); do { $key = ''; $keys = array_merge(range(0,'z')); for ($i = 0; $i < $length; $i++) { $key .= $keys[array_rand($keys)]; } } while (file_exists($dir . '/' . $key . (!empty($extension) ? '.' . $extension : ''))); return $key . (!empty($extension) ? '.' . $extension : ''); } // Checks in the directory of where this file is located. echo random_filename(50); // Checks in a user-supplied directory... echo random_filename(50,'/ServerRoot/mysite/myfiles'); // Checks in current directory of php file,with zip extension... echo random_filename(50,'','zip'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |