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

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

 

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

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

тема: Ответ 003 на задачу N 10
 
 автор: SoftTime   (28.02.2006 в 16:59)   письмо автору
 
 

Ответ 003 на задачу N 10.
С условиями задачи можно ознакомится по ссылке.
<?php
// к-во столбцов в выводимой таблице
$cols 3;
// папка
$dir getcwd();
// массивы с mime-типами и расширениями искомых файлов
$mime_arr = array("image/gif""image/bmp""image/jpeg");
$ext_arr = array("gif""jpg""bmp""jpeg");
/* парсинг descript.ion */
$descript file("descript.ion");
foreach ( 
$descript as $var ) {
  
$expld explode(" "trim($var), 2);
  
$desc[$expld[0]] = $expld[1];
/* конец парсинга descript.ion */

// чтение, проверка файлов и поиск описания для них
$open opendir($dir);
while ( 
false !== ($read readdir($open)) ) {
  if ( 
is_file($read) ) {
    
// определение расширения файла
    
$r_ext explode("."$read);
    
$ext strtolower($r_ext[count($r_ext) - 1]);
    
// проверка расширения
    
if ( in_array($ext$ext_arr) ) {
      
// определение параметров изображения
      
$size getimagesize($read);
      
// проверка mime
      
if ( in_array($size['mime'], $mime_arr) ) {
        
// запись в массив найденных файлов
        
if ( array_key_exists($read$desc) ) {
          
$images[$read]['img'] = "<img src=\"".$read."\" ".$size[3].">";
          
$images[$read]['desc'] = "<br />".$desc[$read];
        } else {
          
$images[$read]['img'] = "<img src=\"".$read."\" ".$size[3].">";
          
$images[$read]['desc'] = "";
        }
      }
    }
  }
}

/* вывод таблицы */
// определение количества строк
$rows ceil(count($images) / $cols);
echo(
"<table border=\"0\" align=\"center\" cellpadding=\"5\">\n");
for ( 
$i 0$i $rows$i++ ) { // цикл для строк
  
echo("<tr>");
  for ( 
$j 0$j $cols$j++ ) { // цикл для столбцов
    
$now each($images); // получение элемента массива
    
echo("<td align=\"center\">".$now[1]['img'].$now[1]['desc']."</td>\n");
    if ( !
$now ) break;
  }
  echo(
"</tr>\n");
}
echo(
"</table>");
?>


http://www.softtime.ru/info/task.php?id_article=80

   
 
 автор: cheops   (05.03.2006 в 23:44)   письмо автору
 
   для: SoftTime   (28.02.2006 в 16:59)
 

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

   
Rambler's Top100
вверх

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