我正在声明以下函数从目录中获取随机图像。我想在相同的代码中使用相同的函数从不同的目录中获取随机图像。现在问题是我必须更改$ path但我已经在声明中使用它,而我想在第二次使用函数时使用不同的路径
声明部分
function getImagesFromDir($path) {
$images = array();
if ( $img_dir = @opendir($path) ) {
while ( false !== ($img_file = readdir($img_dir)) ) {
// checks for gif, jpg, png
if ( preg_match("/(\.gif|\.jpg|\.png)$/", $img_file) ) {
$images[] = $img_file;
}
}
closedir($img_dir);
}
return $images;
}
我第一次用这种方式
$root = '';
$path = 'frames/';
$imgList = getImagesFromDir($root . $path);
$img = getRandomFromArray($imgList);
第二次如何使用它,以便从不同目录中选择图像。
答案 0 :(得分:1)
可能你没有调用这个函数两次,但声明它两次。
声明:
function getImagesFromDir($path) {
$images = array();
if ( $img_dir = @opendir($path) ) {
while ( false !== ($img_file = readdir($img_dir)) ) {
// checks for gif, jpg, png
if ( preg_match("/(\.gif|\.jpg|\.png)$/", $img_file) ) {
$images[] = $img_file;
}
}
closedir($img_dir);
}
return $images;
}
调用:
$images1 = getImagesFromDir("/var/www/images1");
$images2 = getImagesFromDir("/var/www/images2");
如果你写
function getImagesFromDir($path) ....
再次在重新声明的任何地方,PHP不支持此
如果您需要多次声明该函数的文件,也会发生这种情况。
- 编辑---
$strRoot = '';
$astrImages = array();
$astrImages[] = array( 'path' => 'frames/', 'image' => '' );
$astrImages[] = array( 'path' => 'etc1/', 'image' => '' );
$astrImages[] = array( 'path' => 'etc2/', 'image' => '' );
$astrImages[] = array( 'path' => 'etc3/', 'image' => '' );
foreach( $astrImages as $nIndex => $astrImage )
{
$imgList = getImagesFromDir($strRoot . $astrImage['path']);
$astrImages[$nIndex]['image'] = getRandomFromArray($imgList);
}