| |
|
|
| | Как вывести все картинки из папки в виде таблицы на web-странице? | |
| |
|
|
| |
|
|
| |
для: 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" а на выходе я хочу получить "один гиф" и.т.п. | |
| |
|
|
| |
|
|
| |
для: 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:
strstr( PHP_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($images, strpos($images, ".")+1, strlen($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>
|
| |
| |
|
|
| |
|
|
| |
для: 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:01)
| | | извините вот так будет понятнее
"один гиф" должно быть прописанно
например как в нюке
"._1.gif."
а в файле lang-russian
define("_1.gif","один гиф");
Может быть это правильнее сделать через MySql но я к сожалению в нём совершенно не разбираюсь | |
| |
|
|
| |
|
|
| |
для: 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>";
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(21.10.2006 в 18:13)
| | | 2kasmanaft спасибо это то что нужно
буду пробовать ) | |
| |
|
|
| |
|
|
| |
для: predator
(22.10.2006 в 18:14)
| | | Просто огромнейшее спасибо ! всё заработало ! | |
| |
|
|
| |
|
|
| |
для: tAleks
(16.10.2006 в 17:17)
| | | Ваша проблема уже встречалась ранее в разделе Задачи на PHP. Поищите ответы тут:
http://www.softtime.ru/info/task.php?id_article=80 | |
| |
|
|