Вывод картинок на PHP - нужен скрипт

Статус
В этой теме нельзя размещать новые ответы.
<?php
function get_images($directory)
{
$filenames = array();
$directory = str_replace('\\', '/', $directory);
if(is_dir($directory))
{
$dp = opendir($directory);
while($filename = readdir($dp))
{
if(!is_dir($directory.'/'.$filename))
{
$file_ext = strtolower(substr($directory.'/'.$filename, strrpos($directory.'/'.$filename, '.')+1));
if(in_array($file_ext, array('jpg', 'gif', 'png')))
{
$filenames[count($filenames)] = $filename;
}
}
}
}
$dp = closedir();
return $filenames;
}
$path = '/images/'; // тут указываешь папку относительно корня веб дерева
$img_count = 9; // тут указываешь число картинок которое нужно выводить
$images = get_images($_SERVER["DOCUMENT_ROOT"].$path);
$i = 0;
while($images[$i])
{
$npic = rand(0, count($images)-1);
echo '<img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt="">';
unset($images[$npic]);
$images = array_values($images);
$i++;
if($i>=$img_count) break;
}
?>
все это хорошо но в функции должно быть рекуррсивный вызов самой в себя после проверки есть ли поддериктория?, в которой параметром должно было передаваться переменная поддиректории, тогда происходит обход н-мерного дерева, поправьте если я чтото напутал

Хороший скриптик. Если бы еще сделать так чтобы каждой картинке соответствовал свой url, было бы просто великолепно.
Кто-нибудь может помочь с этим?
Спасибо
 
Хороший скриптик. Если бы еще сделать так чтобы каждой картинке соответствовал свой url, было бы просто великолепно.
Кто-нибудь может помочь с этим?
Спасибо
PHP:
while($images[$i])
	{
		$npic = rand(0, count($images)-1);
		//echo '<img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt="">';
		echo '<a href="'.htmlspecialchars($path.$images[$npic]).'"><img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt=""></a>';
 
PHP:
while($images[$i])
	{
		$npic = rand(0, count($images)-1);
		//echo '<img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt="">';
		echo '<a href="'.htmlspecialchars($path.$images[$npic]).'"><img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt=""></a>';
Спасибо, но я имел ввиду url не на саму картинку, а вообще любой url, что делало бы из этого скрипта по сути банерокрутилку.
Кстате привести к желаемому виду этот скриптик удалось, ниже привожу код, наверняка многим будет полезно:
Код:
<?php
$data = 'data.txt'; // файл базы 
$DataArray = array_map('rtrim', file($data));
$PicsArray = array();
foreach ($DataArray as $DataItem)
{
	$DataItemArray = explode(';', $DataItem);	
	$PicsArray[$DataItemArray[1]] = $DataItemArray[0];
}
function get_images($directory)
{
	$filenames = array();
	$directory = str_replace('\\', '/', $directory);
	if (is_dir($directory))
	{
		$dp = opendir($directory);
		while($filename = readdir($dp))
		{
			if(!is_dir($directory.'/'.$filename))
			{
				$file_ext = strtolower(substr($directory.'/'.$filename, strrpos($directory.'/'.$filename, '.')+1));
		if(in_array($file_ext, array('jpg', 'gif', 'png')))
				{
			$filenames[count($filenames)] = $filename;
				}
			}
		}
		$dp = closedir();
	}
	return $filenames;
}
$path = '/images/'; // тут указываешь папку относительно корня веб дерева
$img_count = 9; // тут указываешь число картинок которое нужно выводить      
$images = get_images($path);
$i = 0;
while($images[$i])
{
	$npic = mt_rand(0, count($images)-1);
	$url = '';
	$url = array_search($images[$npic], $PicsArray);
	if ($url)
	{
		echo '<a href="'.$url.'"><img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt=""></a>';
	}else
//Если url в базе для картинки отсутствует, подставлять эту...
		echo '<a href="your_url"><img src="'.htmlspecialchars($path.$images[$npic]).'" border="0" alt="" ></a>';
	unset($images[$npic]);
	$images = array_values($images);
	$i++;
	if($i>=$img_count)
		break;
}
?>
data.txt
Код:
01.jpg;http://www.site1.com
02.jpg;http://www.site2.com
03.jpg;http://www.site3.com
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху