使用PHP获取随机背景图像

时间:2015-07-13 12:30:21

标签: php wordpress

我想用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/。我不知道这是从哪里来的! ...?

1 个答案:

答案 0 :(得分:2)

您想要更改

$myRandBkgd = "$bkgd[$i]";

$myRandBkgd = $bkgd[$i];

如果这没有帮助,请使用var_dump()代替echo()转储一些变量并检查输出是否符合您的期望。