|
|
|
| Ответ 007 на задачу N 10.
С условиями задачи можно ознакомится по ссылке.
Добавил реакцию на отсутствие файлов картинок и файла описания.
<?php
//автор: Drago
//êàòàëîã ñ êàðòèíêàìè
$dir = ".";
//ôàéë ñ îïèñàíèåì
$file_description = "descript.ion";
//êîëè÷åñòâî ñòîëáöîâ â òàáëèöå
$num = 10;
//òèïû ôàéëîâ äëÿ ïðîñìîòðà
$type = array("jpg", "JPG", "gif", "GIF", "bmp", "BMP");
$hdl = opendir ($dir);
while ($file = readdir ($hdl))
{
//åñëè $file ýòî ôàéë è èìååò íóæíûé íàì òèï, òî äîáàâëÿåì åãî â ìàññèâ $array
if ((is_file ($file)) && (array_search (substr ($file, strrpos ($file, ".") + 1), $type) !== false))
$array[] = $file;
}
closedir ($hdl);
if (file_exists ($file_description))
{
$descrip = file ($file_description);
foreach ($descrip as $key => $value)
{
//ñîçäàåì íîâûé ýëåìåíò ñ êëþ÷åì - íàçâàíèåì ôàéëà, çíà÷åíèåì - îïèñàíèåì
$descrip[substr ($value, 0, strpos ($value, " "))] = substr ($value, strpos ($value, " ") + 1);
unset ($descrip[$key]);
if (!empty ($array))
{
//åñëè òàêîé ôàéë, äëÿ êîòîðîãî åñòü îïèñàíèå, îòñóòñòâóåò â êàòàëîãå, òî äîáàâëÿåì åãî â ìàññèâ $array
if (array_search (substr ($value, 0, strpos ($value, " ")), $array) === false)
$array[] = substr ($value, 0, strpos ($value, " "));
}
else
$array[] = substr ($value, 0, strpos ($value, " "));
}
}
if (empty ($array))
exit ("Â êàòàëîãå êàðòèíêè îòñóòñòâóþò");
$num_change = $num;
echo "<table border=1><tr>";
foreach ($array as $key => $pic)
{
echo "<td><img src=$pic>";
if (!empty ($descrip[$pic]))
echo "<br>" . $descrip[$pic];
echo "</td>";
if (($key + 1) / $num_change == 1)
{
echo "</tr><tr>";
$num_change += $num;
}
}
echo "</tr></table>";
?>
|
http://www.softtime.ru/info/task.php?id_article=80 | |
|
|
|
|
|
|
|
для: SoftTime
(03.03.2006 в 19:03)
| | Компактно, но читабельным код не поворачивается назвать из-за HTML-символов. Осуществляется проверка расширения файлов - оригинально решена проблема регистра, такой подход не принято называть "грамотным", но здесь он более чем оправдан - число расширений не велико, а когда они явно прописаны сразу видно что к чему. Однако, скрипт отображает фотографии, которые присутствуют в каталоге, но отсутствуют в файле описания - это наверное не совсем то, чего бы хотел администратор. | |
|
|
|
|
|
|
|
для: cheops
(06.03.2006 в 00:08)
| | Странно, когда постил все было по-русски. Наверное кодировка сбилась. Если можно, то исправьте, а то читать затруднительно другим будет.
>Однако, скрипт отображает фотографии, которые присутствуют в каталоге, но отсутствуют в файле описания - это наверное не совсем >то, чего бы хотел администратор.
Почему же? Ведь в задании написано:
Необходимо создать скрипт index.php, который будет находиться в этом же подкаталоге и будет выводить таблицу, в каждой ячейке которой будет изображение и подпись к нему (если она есть).
|
То есть, выводить нужно все фотографии, и если имеется подпись, то выводить и ее тоже. | |
|
|
|