Я хочу получить случайное фоновое изображение, используя php. То сделано легко (Source):получить случайное фоновое изображение с помощью php
<?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/
. Я понятия не имею, откуда это происходит! ...?
Большое спасибо за ваши усилия! Оба не помогают. Мой вывод следующий: http://pathtotheme.de/wp-content/themes/mytheme string (1) «U» ' –
Ну, бросьте пару' var_dump() 's в ваш код - т.е. перед' return ($ arrayImage) '- и искать себя;) – vzwick
Thats умный трюк, чтобы найти ошибки! В настоящее время вся функция возвращает 'Undefine folder.', потому что мой путь неправильный. Тестирование его с помощью ' Php var_dump ($ bgfolder)?>' Показывает, что есть место, выходящее из ниоткуда. Я отредактировал мой вопрос и добавил эту деталь! –