我有这样的代码:
function endsWith($haystack, $needle) {
return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== FALSE);
}
function rsearch($folder, $pattern) {
$dir = new RecursiveDirectoryIterator($folder);
$ite = new RecursiveIteratorIterator($dir);
$files = new RegexIterator($ite, $pattern, RegexIterator::GET_MATCH);
$fileList = array();
foreach($files as $file) {
$fileList = array_merge($fileList, $file);
}
return $fileList;
}
foreach(rsearch("images/" . $directory . "", "_.*jpg_iU") as $file) {
if(!endsWith($file, "title.jpg")) {
echo '<img src="'.$file.'">';
}
}
是否有可能以某种方式加载.jpg文件取决于他们的名字?我有像IMG_0001, IMG_0002这样的文件名。可以按这个顺序装吗?
看起来好像rsearch
返回的数组很简单,所以sort( $arr )
或rsort( $arr )
应该是有用的。您可以使用这两种方法来查看结果并修改代码以合并它们——例如:
$files=rsearch("images/" . $directory . "", "_.*jpg_iU");
sort( $files );
foreach( $files as $file ){
/* rest of your code*/
}
或者您可以修改您的研究函数,以便在返回结果之前包含搜索....
function rsearch($folder, $pattern) {
$dir = new RecursiveDirectoryIterator($folder);
$ite = new RecursiveIteratorIterator($dir);
$files = new RegexIterator($ite, $pattern, RegexIterator::GET_MATCH);
$fileList = array();
foreach($files as $file) {
$fileList = array_merge($fileList, $file);
}
sort( $filelist );
/* check the manual for the various flags you can set on the sort function */
return $fileList;
}