[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывести все картинки, не зная имени
Stasonix
Собственно говоря вопрос в заголовке топика, добавить нечего, разве что скажу что есть папка, в ней картинки, и в этой же папке index.php, как вывести эти картинки все в браузер, не заморачиваясь надо полными именами?



Спустя 3 минуты, 51 секунда (3.03.2012 - 13:42) Visman написал(а):
Можно так
	$open = opendir($dir);
while (($file = readdir($open)) !== false)
{
// а тут проверка на расширение имени файла $file и вывод текущей картинки
}
closedir($open);

Спустя 4 минуты, 14 секунд (3.03.2012 - 13:46) Winston написал(а):
scandir()
Или
foreach(glob('*.jpg') as $val)
echo $val . '<br/>';

Спустя 1 минута, 53 секунды (3.03.2012 - 13:48) Stasonix написал(а):
Цитата (Winston @ 3.03.2012 - 10:46)

foreach(glob('*.jpg') as $val)
echo $val . '<br/>';

расширение файла может быть любым, ну в смысле только картиночным, может регулярки задействовать?

Спустя 2 минуты, 58 секунд (3.03.2012 - 13:51) Stasonix написал(а):
Цитата (Visman @ 3.03.2012 - 10:42)
Можно так
	
// а тут проверка на расширение имени файла $file и вывод текущей картинки

хмм, а может и без руглярки, по моему в php есть свои функции проверки расширений, или я могу ошибаться?

Спустя 1 минута, 45 секунд (3.03.2012 - 13:53) Visman написал(а):
Для получения расширения из строки я пользуюсь вот этим ;)
$ext = strtolower(substr(strrchr($file, '.'), 1));

Спустя 2 минуты, 50 секунд (3.03.2012 - 13:55) Winston написал(а):
Цитата (Stasonix @ 3.03.2012 - 12:48)
расширение файла может быть любым

foreach(glob('*.{jpg,png}', GLOB_BRACE) as $val)
echo $val . '<br/>';

Цитата (Visman @ 3.03.2012 - 12:53)
Для получения расширения из строки я пользуюсь вот этим ;)

А чем http://ua.php.net/manual/ru/function.pathinfo.php не устраивает?

Спустя 5 минут, 26 секунд (3.03.2012 - 14:01) Visman написал(а):
Цитата (Winston @ 3.03.2012 - 18:55)
А чем http://ua.php.net/manual/ru/function.pathinfo.php не устраивает?

Не заметил biggrin.gif

Спустя 48 секунд (3.03.2012 - 14:02) Stasonix написал(а):
пусто, но и ошибок нет?

<?php
$dir = "../"; // я уже как только не писал, не видит current dir
$open = opendir($dir);
while (($file = readdir($open)) !== false)
{
// а тут проверка на расширение имени файла $file и вывод текущей картинки
$ext = strtolower(substr(strrchr($file, '.'), 1));

if ($ext=="jpg" || $ext=="png" || $ext=="gif" || $ext=="JPG" || $ext=="PNG" || $ext=="GIF") echo $file;

}
closedir($open);
?>

как текущий каталог обозначить правильно?

Спустя 1 минута (3.03.2012 - 14:03) Winston написал(а):
Цитата (Stasonix @ 3.03.2012 - 13:02)
$dir = "../";

Это на каталог выше. Текущий каталог относительно твоего скрипта пишется так ./

Спустя 2 минуты, 1 секунда (3.03.2012 - 14:05) Stasonix написал(а):
Цитата (Winston @ 3.03.2012 - 11:03)
Цитата (Stasonix @ 3.03.2012 - 13:02)
$dir = "../";

Это на каталог выше. Текущий каталог относительно твоего скрипта пишется так ./

замечательно, но вывело только имена, а некоторые картинки с кириллическими именами, и их вывело квадратиками, вот такой эФфеКт.

Спустя 2 минуты, 15 секунд (3.03.2012 - 14:07) Winston написал(а):
Цитата (Stasonix @ 3.03.2012 - 13:05)
а некоторые картинки с кириллическими имени, и их вывело квадратиками

значит у тебя файл в юникоде?
Если да то нужно имена перкодировать
$file = iconv('WINDOWS-1251', 'UTF-8', $file);
echo $file;

Спустя 2 минуты, 21 секунда (3.03.2012 - 14:09) Stasonix написал(а):
Да! Спасибо! Я думаю что делать с именами все понимают и так.
п.с. <img src='имя'> это я так, на заметку.

Спустя 2 минуты, 22 секунды (3.03.2012 - 14:12) Visman написал(а):
Stasonix, да в $file имя, а не сама картинка.
Чтобы картинка показалась надо имя загнать в тег img, например
'<img src="http://абсолютный путь сайта до папки с картинками'.$file.'" alt="'.$file.'" border="0">'

Спустя 50 секунд (3.03.2012 - 14:12) Stasonix написал(а):
ВОТ ПОЛНЫЙ СКРИПТ:

<?php
$dir = "./";
$open = opendir($dir);
while (($file = readdir($open)) !== false)
{

$ext = strtolower(substr(strrchr($file, '.'), 1));

if ($ext=="jpg" || $ext=="png" || $ext=="gif" || $ext=="JPG" || $ext=="PNG" || $ext=="GIF") {

$file = iconv('WINDOWS-1251', 'UTF-8', $file);
echo "<img src='$file'>";
}

}

closedir($open);
?>

кому надо, юзайте наздоровье!

Спустя 1 минута, 4 секунды (3.03.2012 - 14:14) Stasonix написал(а):
конечно можно было и через регулярку, но это уже так, а для наглядности сойдет.

Спустя 12 секунд (3.03.2012 - 14:14) Visman написал(а):
И это
$ext=="JPG" || $ext=="PNG" || $ext=="GIF"

не нужно, так как понижение регистра идет в вычислении расширения.

Спустя 2 минуты, 41 секунда (3.03.2012 - 14:16) Visman написал(а):
Winston
$ext = strtolower(substr(strrchr($file, '.'), 1));

короче чем
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));

:D

З.Ы. Смайлы работают криво. То они есть, но вот их уже нет.

Спустя 19 секунд (3.03.2012 - 14:17) Winston написал(а):
foreach(glob('*.{jpg,png,gif,JPG,PNG,GIF}', GLOB_BRACE) as $file)
{
$file = iconv('WINDOWS-1251', 'UTF-8', $file);
echo "<img src='" . $file . "'>";
}




Спустя 3 минуты, 29 секунд Winston написал(а):
Цитата (Visman @ 3.03.2012 - 13:16)
короче чем

Ну, а зачем в нижний регистр переводить?
Цитата (Visman @ 3.03.2012 - 13:16)
З.Ы. Смайлы работают криво. То они есть, но вот их уже нет.

Они работают только тогда, когда в твоем посте нету кода выделенного тегами.

Спустя 8 минут, 16 секунд (3.03.2012 - 14:25) Visman написал(а):
Цитата (Winston @ 3.03.2012 - 19:20)
Ну, а зачем в нижний регистр переводить?

Код был взят из рабочего файла. Там он зачем-то нужен был.
З.Ы. Счас изучу его, может чего поменяю biggrin.gif
Быстрый ответ:

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