$imgname = date(YmdHis).substr(md5($fname),0,5).$imageinfo[2];我用这个给上传来的图片文件改文件名。//$imageinfo[2]是图片的后缀。取日期和时间秒后加上原来文件名的md5值取一部分

解决方案 »

  1.   

    请教 fujiachun(傅加淳) :
        微秒怎么取?
      

  2.   

    另,突然想起来,其实按我原来的做法,是不是跟直接用TIME()没区别?
      

  3.   

    microtime() 的返回值用空格分为两部分
    如 0.93751200 1062749505 
    前面是精确到微秒(百万分之一秒),后面是秒(与time()返回相同)可连接成 1062749505937512 (0.93751200 只取有效的937512) 共16位
    另外加4位顺序号由于你测试环境的主机运行行速度高,所以仅用时间是不够的。
      

  4.   

    是啊,太快了,开始没想到都百万分之一秒了还会重复....唉
    那这样做是不是应该没问题了?srand((double)microtime()*1000000);
    $strSerialnum = time().substr(microtime(),2,6).rand(0,9999);
      

  5.   

    不行rand(0,9999);不能产生唯一的数,只是产生遵循平均分布的随机数
    必须使用顺序号,可用数据库保存上一次的值。
      

  6.   

    顺序号啊..不行啊,我数据是插入TABLE1,然后定时取到TABLE2,取后TABLE1的数据清掉,没地方找以前的顺序号啊,TABLE2不允许查的..