[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не могу вывести картинки с нескольеих директорий
Markus111
Здравствуйте.
подскажите как вывести картинку.
в директории uploads\posts лежат еже директории и с них надо вывести случайным образом картинку
вот пробовал код но там только с указаной директории можно
function randomImage($path = 'uploads/posts/') {
//если директория не существует
if (!opendir($path)) {
return 'Ошибка! Вы указали неверную директорию!';
}
//иначе
else {
//открываем папку
$dir = opendir($path);
//$dir = scandir($path);
//читаем содержимое

while(($img = readdir($dir)) !== false) {
//определяем расширение файлов
$res = substr(strrchr($img,'.'), 1);
//если расширение *.gif, *.jpg, *.png и файл существует
if ( is_file($img) && ($res == 'gif') || ($res == 'jpg') || ($res == 'png') ) {
//записываем файлы в массим $imgname[]
$imgname[] = $path.$img;
}
}

//закрываем директорию
closedir($dir);
//считаем количество файлов
$i = rand(0, count($imgname)-1);
//записываем вывод изображения в переменную $result
$result = img($imgname[$i]);
return $result;
}
echo randomImage();
}




Спустя 21 минута, 52 секунды (20.09.2012 - 11:41) walerus написал(а):
Не понял вопроса, что и от куда, и куда нужно вывести..., пример приводи поподробней... Есть папка, в папке - файлы и папки, нужно ... и т.д.

Спустя 3 минуты, 45 секунд (20.09.2012 - 11:45) Markus111 написал(а):
есть папка posts, в ней еще папки 2012-09, 2012-10 ...
в папках 2012-09, 2012-10 картинки и папка с маленькими картинками
я хочу выводить одну картинку с любой папки 2012-09 или 2012-10 ...

Спустя 31 минута, 54 секунды (20.09.2012 - 12:17) Игорь_Vasinsky написал(а):
да тебе рекурсию нужно сделать)

проверять перед открытием картинку - если это директория - то заного запускать функцию.

Спустя 1 час, 27 минут, 57 секунд (20.09.2012 - 13:45) walerus написал(а):
function getDirectory_list($path)
{
$result = array();
if ( substr( $path, -1 ) != "/" )
$path = $path."/";

if( is_dir( $path ) )
{
$dh = opendir($path);
while ( false !== ( $dir = readdir( $dh ) ) )
if ( is_dir( $path . $dir ) && $dir !== '.' && $dir !== '..' )
$result[] = $dir;

closedir($dh);
}
else
{
print "Директория <b>".$path."</b> не найдена";
}

return $result;
}

function getFile_list( $path )
{
$result = array();
if ( substr( $path, -1 ) != "/" )
$path = $path."/";

if( is_dir($path) )
{
$dh = opendir($path);

while (false !== ($dir = readdir($dh)))
if ( $dir !== '.' && $dir !== '..' )
$result[] = $dir;

closedir($dh);
}

return $result;
}

// Путь к папке с папками
$path = 'posts';

// Получили список директорий
$get_directory_list = getDirectory_list( $path );

// Случайная папка
$get_directory_list_rand = $get_directory_list[ array_rand( $get_directory_list ) ];

// Получаем список картинок
$get_file_list_in_directory = getFile_list( $path .'/'. $get_directory_list_rand );

// Случайная картинка
$get_file_list_in_directory_rand = $get_file_list_in_directory[ array_rand( $get_file_list_in_directory ) ];

//записываем вывод изображения в переменную $result
$image = $path .'/'. $get_directory_list_rand . '/' . $get_file_list_in_directory_rand;
echo 'Image - ' . $image;


_____________
https://t.me/pump_upp
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.