Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Каталог картинок
 
 автор: Dims   (06.12.2004 в 22:32)   письмо автору
 
 

Как сделать постраничный вывод картинок (GIF) из папки не используя текстовые файлы или MySQL?

   
 
 автор: cheops   (06.12.2004 в 23:59)   письмо автору
 
   для: Dims   (06.12.2004 в 22:32)
 

Следует отталкиваться от следующего скрипта:
<?php
  // Путь к директории
  $dirname = "F:\\photoes\\2";
  // Выводим по 9 фотографий на странице
  $pnumber = 9;
  // Скрипт, принимает параметр start,
  // который определяет начиная с какой
  // фотографии их следует выводить 
  if(empty($_GET['start'])) $_GET['start'] = 0;
  // Открываем директорию 
  $dir = opendir($dirname);
  if(!$dir) exit("Директория не открыта"); 
  // Подсчитываем число картинок в директории
  $count = 0;
  // В цикле считываем её содержимое 
  while($file = readdir($dir)) 
  { 
    // Если текущий объект является файлом - считаем его 
    if($file != "." && $file != "..") $filenames[] = $file; 
  } 
  // Закрываем директорию 
  closedir($dir); 
  // Заносим число файлов в массив
  $count = count($filenames);
  // После того, как мы выяснили число картинок
  // в директории, нужно проследить не вылазит ли значение
  // параметра start за допустимое
  if(($_GET['start'] + $pnumber)>$count) $_GET['start'] = $count - $pnumber;
  // Выводим фотографии
  echo "<table border=1>";
  $k = 0;
  print_r($filenames);
  for($i = $start; $i<$start + $pnumber; ++$i)
  {
     ++$k;
     if($k==1) echo "<tr><td><img alt='$filenames[$i]' src=$filenames[$i]></td>"; 
     else if($k!=3) echo "<td><img alt='$filenames[$i]' src=$filenames[$i]></td>"; 
     else
     {
       $k = 0;
       echo "<td><img alt='$filenames[$i]' src=$filenames[$i]></td></tr>\n"; 
     }
  }
  echo "</table>";
  // Выводим ссылки на другие страницы
  $number = (int)($count/$pnumber);
  if((float)($count/$pnumber) - $number != 0) $number++;
  for($i = 1; $i<=$number; $i++)
  {
    if($number == $i)
    {
      if($start == $i)
        echo "[".(($i - 1)*$pnumber + 1)."-$count]";
      else
        echo "<a href=readdir.php?start=".(($i - 1)*$pnumber).">[".(($i - 1)*$pnumber + 1)."-$count]</a>";
    }
    else
    {
      if($start == $i)
        echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]";
      else
        echo "<a href=readdir.php?start=".(($i - 1)*$pnumber).">[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]";
    }
  }
?>

   
 
 автор: Dims   (07.12.2004 в 20:46)   письмо автору
 
   для: cheops   (06.12.2004 в 23:59)
 

А как поменять директорию? Допустим, на /img? Он ее ненаходит!

   
 
 автор: Akira   (07.12.2004 в 21:23)   письмо автору
 
   для: Dims   (07.12.2004 в 20:46)
 

Находит ;) Правда я бы внес пару изменений =) readdir.php?start= на $PHPSELF.'?start

   
 
 автор: cheops   (07.12.2004 в 23:53)   письмо автору
 
   для: Dims   (07.12.2004 в 20:46)
 

Это не сложно, но возникает вопрос как расположены друг относительно друга /img и приведённый выше скрипт...

   
 
 автор: Dims   (08.12.2004 в 14:04)   письмо автору
 
   для: cheops   (07.12.2004 в 23:53)
 

>Это не сложно, но возникает вопрос как расположены друг
>относительно друга /img и приведённый выше скрипт...


Скрипт и папка /img находяться в одной папке. А папку /img он ненаходит:

Array ( [0] => gif (1).gif [1] => gif (10).gif [2] => gif (11).gif [3] => gif (12).gif [4] => gif (13).gif [5] => gif ... и т.д.

   
 
 автор: cheops   (08.12.2004 в 14:41)   письмо автору
 
   для: Dims   (08.12.2004 в 14:04)
 

А как прписана папка img? Так:
<?php 
  // Путь к директории 
  $dirname = "img"; 
?>


>Array ( [0] => gif (1).gif [1] => gif (10).gif [2] => gif
>(11).gif [3] => gif (12).gif [4] => gif (13).gif [5] => gif
>... и т.д.
А это что за загадочная конструкция? Это то, что должно быть?