小智 15
正如我所提到的,我认为创建唯一文件名的最佳方法是简单地添加time().那就像
$image_name = time()."_".$image_name;
Run Code Online (Sandbox Code Playgroud)
小智 7
从上传的文件中抓取文件扩展名:
$ext = pathinfo($uploaded_filename, PATHINFO_EXTENSION);
Run Code Online (Sandbox Code Playgroud)
抓住时间到第二个: time()
抓住一些随机性: md5(microtime())
将时间转换为基数36:base_convert (time(), 10, 36)- 基数36将10字节的字符串压缩到大约6个字节,以允许使用更多的随机字符串
将整批作为16个字符串发送:
$unique_id = substr( base_convert( time(), 10, 36 ) . md5( microtime() ), 0, 16 ) . $ext;
Run Code Online (Sandbox Code Playgroud)
我怀疑它会不会碰撞 - 如果你不介意很长的文件名,你甚至不能截断它.