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程序设计有所帮助。