<MyRusakov.ru />

Вёрстка сайта с нуля

Вёрстка сайта с нуля

Это уникальная информация по созданию страниц любой сложности. Вы узнаете всё, что нужно по HTML и CSS, а также увидите множество примеров по вёрстке страниц. А также почти к каждому уроку идут упражнения для закрепления материала, поэтому в отличном результате можете быть уверены! Пройдя данный курс, Вы сможете верстать страницы с любым по сложности дизайном. Помимо курса, Вы получите Бонус, который расскажет, как заработать на вёрстке сайтов.

Весь курс соткан из практических примеров реальной вёрстки. А также почти к каждому уроку идут упражнения для закрепления материала, поэтому в отличном результате можете быть уверены!

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Вывод изображений из директории + навигация
22.05.2013 00:46:58 Вывод изображений из директории + навигация Сообщение #1
Thomasan

Thomasan

Новичок

Новичок

Дата регистрации:
22.05.2013 00:09:24

Сообщений: 5

Здравствуйте, подскажите пожалуйста каким образом объединить два данных кода:
http://myrusakov.ru/php-dir-images.html
http://myrusakov.ru/php-page-navigation.html

У меня возникает проблема с тем, что в навигации используется импорт данных из базы, мне же нужно что бы импорт был не из базы, а как это выразиться из папки.

На деле, имеется страничка + папка с изображениями, в папке более 1000 картинок. Выводить на одной странице это просто "сложности", тем самым мне нужно разделить все постранично, что бы выводилось допустим по 30 изображений на страницу.
Профиль Ответить
22.05.2013 08:02:08 Вывод изображений из директории + навигация Сообщение #2
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Вот, набросал код:

<?php
$id = $_GET["id"];
function getExt($filename) {
return end(explode(".", $filename));
}
$dir = 'pictures/'; // Папка с изображениями
$count = 6; // Количество изображений на странице
if(!$id) $id = 1;
$start = $count * ($id - 1);
$finish = $start + $count;
$files = scandir($dir);
for ($i = $start; $i < $finish; $i++) {
if (($files[$i] != "." && ($files[$i] != "..") {
if((getExt($files[$i]) == "png" || (getExt($files[$i]) == "jpeg" || (getExt($files[$i]) == "jpg" || (getExt($files[$i]) == "gif") {
$path = $dir.$files[$i];
echo "<img src = '$path' alt = 'Изображение' width = '200px' height = '200px'/>";
echo "<br />";
echo "<br />";
}
}
}
$count_files = count($files);
$count_pages = ceil($count_files / $count);
for($i = 0; $i < $count_pages; $i++) {
$s = $i + 1;
echo "<a style = 'margin-right: 20px;' href = 'file.php?id=".$s."' title = '".$s."'>".$s."</a>";
}
?>
Профиль Ответить
22.05.2013 09:55:08 Вывод изображений из директории + навигация Сообщение #3
Thomasan

Thomasan

Новичок

Новичок

Дата регистрации:
22.05.2013 00:09:24

Сообщений: 5

Где то кроется ошибочка, т.к. ввел значение $count = 30;, а на первой странице выводит 28, на последующих все нормально, код таков:
<script type="text/javascript">
function openImageWindow(src) {
var image = new Image();
image.src = src;
var width = image.width;
var height = image.height;
window.open(src,"Image","width=" + width + ",height=" + height);
}
</script>

<?php
$id = $_GET["id"];
function getExt($filename) {
return end(explode(".", $filename));
}
$dir = 'images/'; // Папка с изображениями
$count = 30; // Количество изображений на странице
if(!$id) $id = 1;
$start = $count * ($id - 1);
$finish = $start + $count;
$files = scandir($dir);
for ($i = $start; $i < $finish; $i++) {

if (($files[$i] != "." && ($files[$i] != "..") {
if((getExt($files[$i]) == "png" || (getExt($files[$i]) == "jpeg" || (getExt($files[$i]) == "jpg" || (getExt($files[$i]) == "gif") {
$path = $dir.$files[$i];
echo "<img src='$path' alt='' width='200px' height='200px' onclick ='openImageWindow(this.src);' />&nbsp;"; // Выводим ссылку на изображение

}
}
}
echo "<br>"; // Отступ перед навигацией

$count_files = count($files);
$count_pages = ceil($count_files / $count);
for($i = 0; $i < $count_pages; $i++) {
$s = $i + 1;
echo "<a style = 'margin-right: 20px;' href = 'images.php?id=".$s."' title = '".$s."'>".$s."</a>";
}
?>
Профиль Ответить
22.05.2013 15:46:46 Вывод изображений из директории + навигация Сообщение #4
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Вроде все нормально, не понимаю в чем ошибка. Тем более вместо 30 - 28, не очень большая разница - пользователь не заметит
Профиль Ответить
22.05.2013 20:22:10 Вывод изображений из директории + навигация Сообщение #5
Thomasan

Thomasan

Новичок

Новичок

Дата регистрации:
22.05.2013 00:09:24

Сообщений: 5

Довольно заметно исходя из того, что на первой странице получается 1 столбик из 10 изображений, и два из 9. На остальных все по 10. Ладно, спасибо за навигацию, может решение и найдет само себя)
Профиль Ответить
23.05.2013 01:08:30 Вывод изображений из директории + навигация Сообщение #6
kuller

kuller

Продвинутый

Продвинутый

Дата регистрации:
28.02.2012 15:16:04

Сообщений: 51

<?php
$folder = 'files'; // папка с картинками
$max = 30;
if(is_dir($folder))
{
if($dir = opendir($folder))
{
while($file = readdir($dir))
{
if($file !="." && $file !=".."
{
$images[] = $file;
}
}
closedir($dir);
}else echo 'Невозможно открыть каталог';
}else echo 'Файл не является директорией';

$amount = count($images);
$pages = ceil($amount/$max);

$p = $_GET['page'];

if(!$p OR $p=='')
{
$nmin = 0;
$nmax = $max - 1;
}else{
$nmin = ($p * $max) - $max;
$nmax = ($max * $p) - 1;
}

# Вывод фотографий
for($i = $nmin; $i <= $nmax; $i++)
{
if($images[$i])
{
echo '<a href="'.$folder.'/'.$images[$i].'">';
echo '<img style="border:0px blue dashed; width:160px; height:120px;"
src="'.$folder.'/'.$images[$i].'"/>';
echo '</a>&nbsp;&nbsp;';
}
}
# Навигация
echo "</br></br>";
for ($n=1; $n<=$pages; $n++)
{
if($p != $n)
{
echo '<a href="index.php?page='.$n.'">['.$n.']</a>';
}
elseif ($p !== $n)
{
echo '['.$n.']';
}
}
?>
Профиль Ответить
23.05.2013 19:41:29 Вывод изображений из директории + навигация Сообщение #7
Thomasan

Thomasan

Новичок

Новичок

Дата регистрации:
22.05.2013 00:09:24

Сообщений: 5

С навигацией все отлично, теперь подводит открытие изображения по клику в отдельном окне.
onclick=openImageWindow(this.src);
использовал этот код, но если подставляю его в нынешний, то ничего не происходит.
if($images[$i])
{
echo '<img style="border:0px blue dashed; width:200px; height:200px; onclick=openImageWindow(this.src);"
src="'.$folder.'/'.$images[$i].'"/>';
echo '&nbsp;';
}

В чем ошибаюсь, перепробовал всяческие вариации кода.
Профиль Ответить
23.05.2013 19:47:55 Вывод изображений из директории + навигация Сообщение #8
Thomasan

Thomasan

Новичок

Новичок

Дата регистрации:
22.05.2013 00:09:24

Сообщений: 5

Разобрался, большое спасибо всем
Профиль Ответить
04.01.2015 09:03:12 Вывод изображений из директории + навигация Сообщение #9
Bridun

Bridun

Новичок

Новичок

Дата регистрации:
03.01.2015 08:43:01

Сообщений: 1

Привет всем  а как правильно прикрутить к это выводу слки виде назад вперед 

echo '<a href="index.php?page='. ($p -1) .'"> << </a>';

echo '<a href="index.php?page='. ($p +1) .'"> >> </a>';

проблема вчем например 7 фото а если кликать дальше то и и 8  и9 ит неостанавливается всмысле открывает пустое вникуда 
Профиль Ответить