l2net
Создатель
- Регистрация
- 8 Сен 2008
- Сообщения
- 32
- Реакции
- 4
- Автор темы
- #1
Здравствуйте!
Ситуация следующая:
скрипт (файл buildGalleries.php) получает указание на выполнение и некоторые настройки из флеша после чего должен перебрать все папки и файлы в них из папки галереи (общая папка - galleries, а в ней могут быть еще подразделы галереи) и записать пути всех лежащих там картинок в файл gallery.xml в определеной последовательности по имени, по дате или в случайном порядке (переменная сортировки приходит из флеша), но при любом значении этой переменной сортировка не выполняется. Пожалуйста помогите настроить сортировку последовательности записи, хотябы по имени файла.
Заранее спасибо! и извиняюсь если не совсем понятно изложил
Запись в файл gallery.xml происходит в формате:
Код файла buildGalleries.php
Ситуация следующая:
скрипт (файл buildGalleries.php) получает указание на выполнение и некоторые настройки из флеша после чего должен перебрать все папки и файлы в них из папки галереи (общая папка - galleries, а в ней могут быть еще подразделы галереи) и записать пути всех лежащих там картинок в файл gallery.xml в определеной последовательности по имени, по дате или в случайном порядке (переменная сортировки приходит из флеша), но при любом значении этой переменной сортировка не выполняется. Пожалуйста помогите настроить сортировку последовательности записи, хотябы по имени файла.
Заранее спасибо! и извиняюсь если не совсем понятно изложил
Запись в файл gallery.xml происходит в формате:
PHP:
<?xml version="1.0" encoding="utf-8"?>
<galleries>
<gallery>
<title>Wedding</title>
<images>
<image src="galleries/Wedding/0022.jpg" thumb="galleries/Wedding/thumbs/0022.jpg">0022</image>
</images>
</gallery>
</galleries>
Код файла buildGalleries.php
PHP:
<?php
$sortorder = $_REQUEST["sortorder"];
$indir = "../galleries";
$files = opendir($indir);
$outxml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n";
$outxml .= "<galleries>\n\n";
while ($file = readdir($files)) {
if(is_dir($indir.'/'.$file))
if ($file != '.' && $file != '..') {
{
$tmp_outxml[] = $file;
}
}
}
if ($sortorder == "date")
{
foreach ($tmp_outxml as $k => $v)
{
$modified = filemtime ($indir.'/'.$v);
$moddate[$k] = $modified;
}
array_multisort ($moddate, $tmp_outxml);
}
else if ($sortorder == "random")
{
shuffle ($tmp_outxml);
}
else
{
sort ($tmp_outxml);
}
foreach ($tmp_outxml as $v)
{
$outxml .= get_folder_xml($indir.'/'.$v,$v);
}
$outxml .= "</galleries>";
closedir($files);
$fp = fopen("../xml/gallery/gallery.xml", "w");
fwrite($fp, $outxml);
fclose($fp);
function get_folder_xml($imageDir,$title)
{
$extensions = array(".jpg", ".jpeg", ".JPG",".JPEG",".gif",".GIF",".swf",".SWF");
$output = "";
if($folder = opendir($imageDir))
{
$filenames=array();
while (false !== ($file = readdir($folder)))
{
$dot = strrchr($file, '.');
if(in_array($dot, $extensions))
{
array_push($filenames, $file);
}
}
$spaceTitle = str_replace("_"," ",$title);
$newPath = str_replace("../","",$imageDir);
$output .= "<gallery>\n";
$output .= "<title>$spaceTitle</title>\n";
$output .= " <images>\n";
foreach ($filenames as $source)
{
$imageName = str_replace("mainThumb_","",$source);
$finalName = str_replace("_"," ",$imageName);
$imageName = str_replace($extensions,"",$finalName);
$output .= "\t <image src=\"$newPath/$source\" thumb=\"$newPath/thumbs/$source\">$imageName</image>\n";
}
$output .= " </images>\n";
$output .= "</gallery>\n\n";
return $output;
closedir($folder);
}
}
?>