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

Форум PHP

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

 

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

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

тема: Как вывести все картинки из папки в виде таблицы?
 
 автор: tAleks   (16.10.2006 в 17:17)   письмо автору
 
 

Как вывести все картинки из папки в виде таблицы на web-странице?

   
 
 автор: cheops   (16.10.2006 в 23:03)   письмо автору
 
   для: tAleks   (16.10.2006 в 17:17)
 

Для этого можно воспользоваться скриптом вида
<?php 
  
// Открываем директорию 
  
$dir opendir("dir_name"); 
  
// В цикле считываем её содержимое 
  
echo "<table>";
  while((
$file readdir($dir))) 
  { 
    
// Если текущий объект является файлом - выводим его 
    
if(is_file($file)) echo "<tr><td>".$file"</td></tr>"
  } 
  
// Закрываем директорию 
  
echo "</table>";
  
closedir($dir); 
?> 

   
 
 автор: predator   (21.10.2006 в 11:16)
 
   для: cheops   (16.10.2006 в 23:03)
 

А можно ли усложнить данный код ?
т.е. есть необходимость асоциировать выводимые данные по имени файла т.е.
в дириктории есть фаил "1.gif" а на выходе я хочу получить "один гиф" и.т.п.

   
 
 автор: elenaki   (21.10.2006 в 12:10)   письмо автору
 
   для: predator   (21.10.2006 в 11:16)
 

вывод ТОЛЬКО картинок (этот файл должен лежать в папке с картинками, выводиться он не будет) с предварительным изменением размеров до заданных и построение таблицы превьюшек.


<?
   
// Some configuration variables !
   
$maxWidth 90/// ширина превьюшки
   
$maxHeight 90//// высота превьюшки
   
$maxCols 3//// кол-во колонок
   
$webDir "http://www.your.site//images/"////виртуальный путь к папке 
   
$localDir "/home/sites/www/your_site/images/"/// физический путь к папке 
   
// build the www path: 
$me $_SERVER['PHP_SELF']; 
$Apathweb explode("/"$me); 
$myFileName array_pop($Apathweb); 
$pathweb implode("/"$Apathweb); 
$myURL "http://".$_SERVER['HTTP_HOST'].$pathweb."/".$myFileName
$PAGE_BASE['www'] = $myURL

// build the file path: 
strstrPHP_OS"WIN") ? $strPathSeparator "\\" $strPathSeparator "/"
$pathfile getcwd (); 
$PAGE_BASE['physical'] = $pathfile.$strPathSeparator.$myFileName

// this is so you can verify the results: 
$www $PAGE_BASE['www']; 
$physical $PAGE_BASE['physical']; 

//echo "$physical<p>"; 
//echo "$www<p>"; 

   
   
$AutorisedImageType = array ("jpg""jpeg""gif""png");
?>


<table border='1' cellspacing='5' cellpadding='5' style="border-collapse:collapse; border-style: dotted">
<tr>
   <?
   
// Open localDir
   
$dh opendir($localDir);
   while (
false !== ($filename readdir($dh))) {
       
$filesArray[] = $filename;
   }

   
// Display and resize
   
foreach ($filesArray as $images) {
   
       
$ext substr($imagesstrpos($images".")+1strlen($images));
       
       if( 
in_array($ext$AutorisedImageType) ) {

           list(
$width$height$type$attr) = @getimagesize$localDir.$images );

           
$xRatio $maxWidth $width
           
$yRatio $maxHeight $height
           
           if ( (
$width <= $maxWidth) && ($height <= $maxHeight) ) { 
             
$newWidth $width
             
$newHeight $height
           } 
           else if ((
$xRatio $height) < $maxHeight) { 
             
$newHeight ceil($xRatio $height); 
             
$newWidth $maxWidth
           } 
           else { 
             
$newWidth ceil($yRatio $width); 
             
$newHeight $maxHeight
           } 
           
           if(
$i == $maxCols) {
               echo 
"</tr><tr>";
               
$i 0;
           }
           echo 
"<td align='center' valign='middle' width='$maxWidth' height='$maxHeight'><img src='".$webDir.$images."' width='$newWidth' height='$newHeight'></td>";
           
$i++;
       }
   }
?>
</tr>
</table>

   
 
 автор: kasmanaft   (21.10.2006 в 13:32)   письмо автору
 
   для: predator   (21.10.2006 в 11:16)
 

"один гиф" где-то записано или скрипт сам должен придумать название?

   
 
 автор: predator   (21.10.2006 в 15:01)
 
   для: kasmanaft   (21.10.2006 в 13:32)
 

"один гиф" должно быть прописанно
например как в нюке

"._CLIENTLOGIN."
а в файле lang-russian
define("_CLIENTLOGIN","один гиф");

   
 
 автор: predator   (21.10.2006 в 15:09)   письмо автору
 
   для: predator   (21.10.2006 в 15:01)
 

извините вот так будет понятнее

"один гиф" должно быть прописанно
например как в нюке

"._1.gif."
а в файле lang-russian
define("_1.gif","один гиф");

Может быть это правильнее сделать через MySql но я к сожалению в нём совершенно не разбираюсь

   
 
 автор: kasmanaft   (21.10.2006 в 18:13)   письмо автору
 
   для: predator   (21.10.2006 в 15:09)
 

Да, проще было бы сделать на MySQL ... или хотя бы на файлах ... вам же ведь наверное придется таким способом не одну картинку именовать. А так в файл добавил строчку и все.

Можно было бы в какой-нибудь файл записывать само имя картинки и описание к ней, например так:

1.gif|один гиф
2.gif|два гиф


Затем содержимое файла заносим в массив .. можно ассоциативный, где название картинки будет ключом массива:

$file = file('file.txt');
$images = array();
foreach ($file as $value)
{
    list($img_name, $img_descr) = explode ('|', trim($value));
    $images[$img_name] = $img_descr;
}

А потом вместо

if(is_file($file)) echo "<tr><td>".$file"</td></tr>"; 

подставляйте

if(is_file($file)) echo "<tr><td>".$images[$file]"</td></tr>"; 

   
 
 автор: predator   (22.10.2006 в 18:14)   письмо автору
 
   для: kasmanaft   (21.10.2006 в 18:13)
 

2kasmanaft спасибо это то что нужно
буду пробовать )

   
 
 автор: predator   (22.10.2006 в 22:59)   письмо автору
 
   для: predator   (22.10.2006 в 18:14)
 

Просто огромнейшее спасибо ! всё заработало !

   
 
 автор: Гончий пёс   (21.10.2006 в 19:57)   письмо автору
 
   для: tAleks   (16.10.2006 в 17:17)
 

Ваша проблема уже встречалась ранее в разделе Задачи на PHP. Поищите ответы тут:
http://www.softtime.ru/info/task.php?id_article=80

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования