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

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

 

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

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

тема: Ответ 005 на задачу N 10
 
 автор: SoftTime   (01.03.2006 в 22:47)   письмо автору
 
 

Ответ 005 на задачу N 10.
С условиями задачи можно ознакомится по ссылке.

<?php
/*
Имеется подкаталог, содержащий некоторое количество графических файлов (jpg/gif/bmp). В этом же подкаталоге есть файл descript.ion, содержащий описание некоторых файлов в виде:

111.jpg описание этой фото
222.gif а это просто картинка
333.bmp а этого файла нет, но описание есть

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

Замечание
В файле index.php необходимо предусмотреть переменную, содержащую количество столбцов в таблице.
*/

//Имя файла, содержащего описания картинок
$filename='descript.ion';
//Количество столбцов выводимой таблицы
$col=3;
//Номер выводимого столбца таблицы
$colNumber=0;
//////////////////////////////////////////////////////////////////////////
//Желаемые размеры для вывода картинок:
//Если $height=0 и $width =0, то картинки выводятся их реальным размером
//Если только $height=0, то картинка выводится шириной $width
//Если только $width=0, то картинка выводится высотой $height
//////////////////////////////////////////////////////////////////////////
//Высота выводимых картинок
$height=200;
//Ширина выводимых картинок
$width=0;
//Формируем строку $image_size с размерами картинки для HTML
if($width==0&&$height==0)
{
    
$image_size='">';
}
elseif(
$width==0)
{
    
$image_size=sprintf('" height="%d">',$height);
}
elseif(
$height==0)
{
    
$image_size=sprintf('" width="%d" >',$width);
}
else
{
    
$image_size=sprintf('" width="%d" height="%d">',$width,$height);
}
/////////////////////////////////////////////////////////////////////////////////
//Начинаем рисовать таблицу
echo('<table border="1">');
//Считываем все записи файла с описаниями картинок в массив
$massiv=file($filename);
//Определяем текущий каталог
$mydir=getcwd();
//открываем каталог
$handler=opendir($mydir);
//Обходим все файлы
while (false !== ($file readdir($handler)))
{
           
//Получаем информацию о файле
         
$fileinfo=pathinfo($file);
         
//Переводим в нижний регистр расширение файла
         
$extension=strtolower($fileinfo["extension"]);
         
//Если это файлы рисунков
         
if($extension=='jpg'||$extension=='gif'||$extension=='bmp')
         {
              
//Если это первый столбец - открываем ряд
               
if($colNumber==0)
               {
                echo(
'<tr>');
               }
               
//Выводим рисунок
            
echo('<td valign="top"><img src="'.$file.$image_size);
            
$colNumber++;
            
//Ищем и выводим описание файла
            
$opisanie=0;
            foreach (
$massiv as $line_num => $line)
            {
                    if(
strncasecmp($line,strtolower($file),strlen($file))==0)
                    {
                        echo(
'<br>'.substr($line,strlen($file)).'</td>');
                        
//И удаляем запись об этом файле из массива
                        
unset($massiv[$line_num]);
                        
//Указываем, что описание было
                        
$opisanie=1;
                    }
            }  
//ENDFOREACH Конец просмотра массива описаний
            //Если не было описания просто закрываем ячейку таблицы
            
if($opisanie==0)
            {
                echo(
'</td>');
            }
            
//Если это последний столбец - закрываем ряд
               
if($colNumber==$col)
               {
                 echo(
'</tr>');
                 
$colNumber=0;
               }
        }  
//ENDIF Конец если это файлы рисунков
}  //ENDWHILE Конец обхода всех файлов
//Закрываем таблицу
echo('</table>');
?>


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

   
 
 автор: cheops   (05.03.2006 в 23:52)   письмо автору
 
   для: SoftTime   (01.03.2006 в 22:47)
 

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

   
 
 автор: Саня   (06.03.2006 в 19:54)   письмо автору
 
   для: SoftTime   (01.03.2006 в 22:47)
 

Нареканий нет.

   
Rambler's Top100
вверх

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