Ламерский вопрос по PHP

зеленый
4/12/2006, 8:40:49 PM
Только недавно начал что-то понимать в PHP и стараюсь практиковаться каждый день. Подскажите, знактоки PHP, как сделать постраничный вывод картинок из папки, типа как это сделано на любом сайте с фотками знаменитостей? Чтобы внизу были ссылки-номера страниц.
IT-Master
4/13/2006, 2:49:40 AM
Алгоритм таков
1. Открываешь директорию
2. Запускаешь цыкл с заданым нужным количеством прокручиваний ( сколько нужно считать файлов )
3. считываешь n-файл из содержания и выводишь в броузер.
4. Закрываешь цыкл.
5. Закрываешь директорию.
DELETED
6/19/2006, 12:02:14 AM
Зеленый, если ещё интересно, то напиши. А то впадлу так просто код писать...
Istaan
7/11/2006, 7:12:51 AM
мой код фотогалереи.... сам писял..
может кому понадобиться
CODE <?php
$dir_path="foto"; //укажите путь к папке с фотографиями
$op_dir=opendir($dir_path);
while($col=readdir($op_dir))
  {
     if(($col!=".") && ($col!="."))
        {
           // с какими расширениями можна использовать картинки
           $test1=strpos($col,".jpg");
           $test2=strpos($col,".gif");
           $test3=strpos($col,".bmp");
           if($test1!=0 || $test2!=0 || $test3!=0) $mas_img[]=$col;
        }
  }

closedir($op_dir);
if (count($mas_img)<=0 or empty($mas_img))
  {
     echo "<center><font color=red size=4>Не найдены рисунки</font></center>";
  }
else
  {
     if (empty($foto)) $foto=0;
     $n = count($mas_img);
     echo ("<center>");
     echo '<table border=0 width=100%><tr><td><center><b>Foto name</b></center><br></td></tr></table>';
for ($i=0;$i<$n;$i++)
  {
     if($foto==$i)
        echo "<b>[<a href='foto.php?foto=$i'><font color=#00ff00>".$i."</font></a>]</b>";
     else
        echo "<font>[<a href='foto.php?foto=$i'>".$i."</a>]</font>";
  }
echo "</center><br>";
echo "<center><img src='".$dir_path."/".$mas_img[$foto]."'></center>";
echo "<center><br>";
$foto2=$foto+1;
if($foto==0)
  {
  $foton=$foto+1;
  echo "<a href='foto.php?foto=$foton'>Следующая>>></a>";
  }
else if($foto==$n-1)
  {
  $foton=$foto-1;
  echo "<a href='foto.php?foto=$foton'><<<Предыдущая</a>";
  }
else
  {
  $foton=$foto+1;
  $fotop=$foto-1;
  echo "<a href='foto.php?foto=$fotop'><<<Предыдущая</a>";
  echo " ::: ::: ";
  echo "<a href='foto.php?foto=$foton'>Следующая>>>></a>";
  }
echo "</center></form>";
}
?>
DELETED
7/11/2006, 4:46:31 PM
Молодец, конечно, но автор по-моему уже и сам забыл про эту тему...
Istaan
7/12/2006, 5:47:59 AM
(Gold Man @ 11.07.2006 - время: 12:46) Молодец, конечно, но автор по-моему уже и сам забыл про эту тему...
сто пудов забыл по неё... но моет кому то понадобиться и мне не трудно было нажать ctrl+c -> ctrl+v , пару кнопочек нажать и на клавишу оттправить кликнуть)
DELETED
7/13/2006, 1:38:38 AM
Ну и это правда... Лови плюсик за старания wink.gif
alexmell
8/8/2006, 1:15:44 AM
Может кому и пригодится
Самоучитель по PHP 5 Размер: 7.8 Mb
https://rapidshare.de/files/25663225/samouc...l_PHP5.zip.html
DELETED
8/8/2006, 5:53:24 AM
(alexmell @ 07.08.2006 - время: 21:15) Может кому и пригодится
Самоучитель по PHP 5 Размер: 7.8 Mb
https://rapidshare.de/files/25663225/samouc...l_PHP5.zip.html
Конечно спасибо, но у меня, к примеру, уже такой есть... rolleyes.gif
z006
8/31/2006, 5:47:18 AM
(alexmell @ 07.08.2006 - время: 21:15) Может кому и пригодится
Самоучитель по PHP 5 Размер: 7.8 Mb
https://rapidshare.de/files/25663225/samouc...l_PHP5.zip.html
хм,а не проще с https://www.php.net/docs.php на любом нужном тебе языке скачать?
mvf23
8/31/2006, 6:11:24 PM
мой код фотогалереи.... сам писял..

код не секурный и баговитый... Видно невоороуженным взгядом.
Первое замечание называется "лапша". Перемешивать в одном файле код на PHP и HTML - это не круто.

CODE ($col!=".") && ($col!=".")

БАГА: Видимо ещё одна точка потерялась в одном из сравнений...
Кстати смысла в этих сравнениях все равно нет. Все равно . и .. не пройдут следующего теста

CODE $test1=strpos($col,".jpg");

А как насчет такого имени файла "fucking.jpg.php"?

КРоме того здесь неэффективное решение. 3 сравнения строк выполняются ВСЕГДА. Хотя должны выполняться только в худшем случае...

CODE if($foto==$i)

Использовать суперглобалсы - это дурной тон. ОТсюда могут полезть всякие неприятные ошибки. К тому же она может быть банально не опрелделена.

CODE for ($i=0;$i<$n;$i++)
 {
    if($foto==$i)
       echo "<b>[<a href='foto.php?foto=$i'><font color=#00ff00>".$i."</font></a>]</b>";
    else
       echo "<font>[<a href='foto.php?foto=$i'>".$i."</a>]</font>";
 }

Циферки будут выведены без пробелов, кажися...

CODE echo "<center><img src='".$dir_path."/".$mas_img[$foto]."'></center>";


$dir_path в файловой системе и из веб - вообще говоря - разные вещи. Как насчет "..\foto"?

CODE echo "</center></form>";

form не открывался - зачем закрывать?

Про то что HTML на выходе будет не XHTML совместимый, кривой, без заголовков и т.п. - об этом вообще молчу.

Вроде есть ещё маленькие баги. Но лень выписывать...