php从文件夹随机读取文件的方法
本文实例讲述了php从文件夹随机读取文件的方法。分享给大家供大家参考。具体实现方法如下:
functionRandomFile($folder='',$extensions='.*'){ //fixpath: $folder=trim($folder); $folder=($folder=='')?'./':$folder; //checkfolder: if(!is_dir($folder)){die('invalidfoldergiven!');} //createfilesarray $files=array(); //opendirectory if($dir=@opendir($folder)){ //gotroughallfiles: while($file=readdir($dir)){ if(!preg_match('/^\.+$/',$file)and preg_match('/\.('.$extensions.')$/',$file)){ //feedthearray: $files[]=$file; } } //closedirectory closedir($dir); } else{ die('Couldnotopenthefolder"'.$folder.'"'); } if(count($files)==0){ die('Nofileswherefound:-('); } //seedrandomfunction: mt_srand((double)microtime()*1000000); //getanrandomindex: $rand=mt_rand(0,count($files)-1); //checkagain: if(!isset($files[$rand])){ die('Arrayindexwasnotfound!verystrange!'); } //returntherandomfile: return$folder.$files[$rand]; } //用法演示: //"jpg|png|gif"matchesallfileswiththeseextensions printRandomFile('test_images/','jpg|png|gif'); //returnstest_07.gif //".*"matchesallextensions(allfiles) printRandomFile('test_files/','.*'); //returnsfoobar_1.zip //"[0-9]+"matchesallextensionsthatjust //containnumbers(likebackup.1,backup.2) printRandomFile('test_files/','[0-9]+'); //returnsbackup.7
希望本文所述对大家的php程序设计有所帮助。