我想用php获取随机背景图片。这很简单(Source):
<?php
$bg = array('bg-01.jpg', 'bg-02.jpg', 'bg-03.jpg', 'bg-04.jpg', 'bg-05.jpg', 'bg-06.jpg', 'bg-07.jpg' );
$i = rand(0, count($bg)-1);
$selectedBg = "$bg[$i]";
?>
让我们优化它以选择文件夹中可能的所有背景图像:
function randImage($path)
{
if (is_dir($path))
{
$folder = glob($path); // will grab every files in the current directory
$arrayImage = array(); // create an empty array
// read throught all files
foreach ($folder as $img)
{
// check file mime type like (jpeg,jpg,gif,png), you can limit or allow certain file type
if (preg_match('/[.](jpeg|jpg|gif|png)$/i', basename($img))) { $arrayImage[] = $img; }
}
return($arrayImage); // return every images back as an array
}
else
{
return('Undefine folder.');
}
}
$bkgd = randImage('image/');
$i = rand(0, count($bkgd)-1); // while generate a random array
$myRandBkgd = "$bkgd[$i]"; // set variable equal to which random filename was chosen
当我在wordpress主题中使用它时,我需要设置相对于我的主题文件夹的$bkgd = randImage('image/');
。我想,我可以用:
$bgfolder = get_template_directory_uri() . '/images/backgrounds/';
bkgd = randImage($bgfolder);
当我测试$bgfolder
时,这似乎是最重要的部分,使用var_dump()
我收到了一条不起作用的路径:
http://yw.hiamovi-client.com/wp-content/themes/youthwork string(19) "/images/backgrounds"
在space
之前有一个/images/backgrounds/
。我不知道这是从哪里来的! ...?
答案 0 :(得分:2)
您想要更改
$myRandBkgd = "$bkgd[$i]";
到
$myRandBkgd = $bkgd[$i];
如果这没有帮助,请使用var_dump()
代替echo()
转储一些变量并检查输出是否符合您的期望。