从标题更改为随机数

时间:2015-04-09 11:45:49

标签: php

我有这个代码应该重命名图像。它采用网站的标题并生成一个名称,但如果没有标题,它只保留旧名称。

我怎样才能这样做,而不是标题,它只是randoms数字输入?所以不是" title.extension"它将是randomnumber.jpg

            $tmp = download_url( $img );

            preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $img, $matches);

            $newfn = str_replace(array("%2B", "%52", "%20", "%5"), "B", basename($matches[0]));

            $oofnm = basename($matches[0]);

            if($newfn != $oofnm) {              

                $newfn2 = str_replace(array(".jpg", ".png", ".gif"), "", $newfn);

                $tmppath = pathinfo( $tmp );                                                        // extract path parts
                $newpth = $tmppath['dirname'] . "/". $newfn2 . "." . $tmppath['extension'];   

                rename($tmp, $newpth);                                                                 // renames temp file on server
                $tmp = $newpth;                 
            }

            $file_array['name'] = $newfn;
            $file_array['tmp_name'] = $tmp;

            // If error storing temporarily, unlink
            if ( is_wp_error( $tmp ) ) {
                @unlink($file_array['tmp_name']);
                $file_array['tmp_name'] = '';
                continue;
            }

1 个答案:

答案 0 :(得分:4)

放下所有不必要的东西:

$path_parts = pathinfo($matches[0]);
$file_array['name'] = rand(0,time()/1000) . "." . $path_parts['extension'];

我不确定为什么使用time()/1000作为rand函数的上限。我希望rand使用固定的minmax参数,甚至使用更高级的mt_rand函数。

但我建议您使用uniqid()函数为唯一文件生成唯一的文件标识符:

$file_array['name'] = uniqid() . "." . $path_parts['extension'];