龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 随机文件

时间:2014-08-09 11:56来源:网络整理 作者:网络 点击:
分享到:
随机文件 从给定的文件夹中随机返回一个文件,可以过滤扩展名。 [print](http://www.php.net/print) RandomFile(#39;test_images/#39;,#39;jpg|png|gif#39;); [print](http://www.php.net/print) RandomFile(#39;test_files/#39;

从给定的文件夹中随机返回一个文件,可以过滤扩展名。

[print](http://www.php.net/print) RandomFile('test_images/','jpg|png|gif');

[print](http://www.php.net/print) RandomFile('test_files/','.*');

[print](http://www.php.net/print) RandomFile('test_files/','[0-9]+');
function RandomFile($folder='', $extensions='.*'){

    // fix path:
    $folder = trim($folder);
    $folder = ($folder == '') ? './' : $folder;

    // check folder:
    if (!is_dir($folder)){ die('invalid folder given!'); }

    // create files array
    $files = array();

    // open directory
    if ($dir = @opendir($folder)){

        // go trough all files:
        while($file = readdir($dir)){

            if (!preg_match('/^\\.+$/', $file) and
                preg_match('/\\.('.$extensions.')$/', $file)){

                // feed the array:
                $files[] = $file;                
            }            
        }        
        // close directory
        closedir($dir);    
    }
    else {
        die('Could not open the folder "'.$folder.'"');
    }

    if (count($files) == 0){
        die('No files where found :-(');
    }

    // seed random function:
    mt_srand((double)microtime()*1000000);

    // get an random index:
    $rand = mt_rand(0, count($files)-1);

    // check again:
    if (!isset($files[$rand])){
        die('Array index was not found! very strange!');
    }

    // return the random file:
    return $folder . $files[$rand];

}

//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接