2015-07-13 6 views
1

Я хочу получить случайное фоновое изображение, используя 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/. Я понятия не имею, откуда это происходит! ...?

ответ

2

Вы хотите изменить

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

в

$myRandBkgd = $bkgd[$i]; 

Если это не помогает, используйте var_dump() вместо echo() сбросить некоторые из ваших переменных по пути и проверьте, соответствует ли результат ожиданиям.

+0

Большое спасибо за ваши усилия! Оба не помогают. Мой вывод следующий: http://pathtotheme.de/wp-content/themes/mytheme string (1) «U» ' –

+0

Ну, бросьте пару' var_dump() 's в ваш код - т.е. перед' return ($ arrayImage) '- и искать себя;) – vzwick

+0

Thats умный трюк, чтобы найти ошибки! В настоящее время вся функция возвращает 'Undefine folder.', потому что мой путь неправильный. Тестирование его с помощью '' Показывает, что есть место, выходящее из ниоткуда. Я отредактировал мой вопрос и добавил эту деталь! –

Смежные вопросы