So I am trying to build a script that scans a directory and returns random images to be used as backgrounds.
The php looks like this:
$dir = \"views
'.' and '..' are returned for current and parent directory. You can filter them:
while (false !== ($filename = readdir($dh))) {
if ($filename != '.' && $filename != '..')
$files[] = $filename;
}
Why not use regex? That way it captures any amount of periods. (i.e. ".", "..", "..." etc..)
while (false !== ($filename = readdir($dh))) {
if(!preg_match('/^\.*$/',$filename)){
$files[] = $filename;
}
$dh = opendir("c:\");
while (false !== ($filename = readdir($dh))) {
if ($filename != '.' && $filename != '..')
$files[] = $filename;
}
Use glob()
so you can filter the files.
$files = glob('views/img/bg/*.jpg');
$random = $files[array_rand($files)];
Since you're specifying *.jpg
, $files
contains only JPG files and you don't need to remove the .
and ..
items.