сортиране по имена

lqlqlq

Registered
Код:
<?php 
// настройки // 
$pics_folder = "images/lightbox"; // в коя папка са картинките
$pics_per_page = 6; // по колко картинки на страница 
$pics_ex = array('jpg','jpeg','gif','png'); // кои файлове да зачита като картинки 
// настройки // 

$pics_folder = preg_replace('/[\/]+/', '/', preg_replace('/^[\/]+/', '', $pics_folder).'/'); 
function all_images() 
{ 
global $pics_folder, $pics_ex; 
$folders = array($pics_folder); 
$out_files = array(); 
while (count($folders)) 
{ 
foreach ($folders as $folder) 
{ 
array_shift($folders); 
$dir = opendir($folder); 
while ($file = readdir($dir)) 
{ 
if ($file != '.' && $file != '..') 
{ 
if (is_file($folder.$file) && in_array(strtolower(end(explode(".", $file))), $pics_ex)) 
{ 
$out_files[] = $folder.$file; 
} 
elseif (is_dir($folder.$file)) 
{ 
$folders[] = $folder.$file.'/'; 
} 
} 
} 
} 
} 
return $out_files; 
} 
$all_images = all_images(); 
$out_images = array(); 
foreach ($all_images as $image) 
{ 
$raz = explode("/", $image); 
for ($n=1;$n<=(substr_count($pics_folder, "/"));$n++) array_shift($raz); 
array_pop($raz);  
$out_images[] = $image; 
} 
$masiv = @array_chunk($out_images, $pics_per_page, true); 
$stranici = floor(count($out_images) / $pics_per_page); 
if ((count($out_images) % $pics_per_page) > 0) { $stranici++; } 
if (is_numeric($_GET['page']) && $_GET['page'] <= $stranici) { 
$page = $_GET['page']; 
} else { 
$page = 1; 
} 
$red = 1; 
foreach ($masiv[($page - 1)] as $pic) 
{ 
$razp = explode("/", $pic); 
for ($n=1;$n<=(substr_count($pics_folder, "/"));$n++) array_shift($razp); 
array_pop($razp); 
for ($i=0;$i<count($razp);$i++) 
{ 
$url = array(); 
for($i2=0;$i2<=$i;$i2++) 
{ 
$url[] = $razp[$i2]; 
}   
} 
echo "<a href=\"{$pic}\" rel=\"lightbox\"><img src=\"{$pic}\" width=\"170\" height=\"170\" border=\"0\" alt=\"gallery\" /></a> \n"; 
if ($red == floor(sqrt($pics_per_page))) { $red = 1; echo "\n"; } else { $red++; } 
} 

echo "<br /><br />Страници: "; 
for ($i=1;$i<=$stranici;$i++) { 
if ($page != $i) { 
echo "<a class=\"typ1\" href=\"?page=$i\">  $i</a> "; 
} else { 
echo "$i "; 
} 
} 
?>
Може ли някои да направи този скрипт да сортира изображенията по имена, изображенията попринцип се качват с номера - 1.jpg, 2.jpg и т.н.
 
lqlqlq каза:
<?php
// настройки //
$pics_folder = "images/lightbox"; // в коя папка са картинките
$pics_per_page = 6; // по колко картинки на страница
$pics_ex = array('jpg','jpeg','gif','png'); // кои файлове да зачита като картинки
// настройки //

$pics_folder = preg_replace('/[\/]+/', '/', preg_replace('/^[\/]+/', '', $pics_folder).'/');
function all_images()
{
global $pics_folder, $pics_ex;
$folders = array($pics_folder);
$out_files = array();
while (count($folders))
{
foreach ($folders as $folder)
{
array_shift($folders);
$dir = opendir($folder);
while ($file = readdir($dir))
{
if ($file != '.' && $file != '..')
{
if (is_file($folder.$file) && in_array(strtolower(end(explode(".", $file))), $pics_ex))
{
$out_files[] = $folder.$file;
}
elseif (is_dir($folder.$file))
{
$folders[] = $folder.$file.'/';
}
}
}
}
}
return natsort($out_files);
}
$all_images = all_images();
$out_images = array();
foreach ($all_images as $image)
{
$raz = explode("/", $image);
for ($n=1;$n<=(substr_count($pics_folder, "/"));$n++) array_shift($raz);
array_pop($raz);
$out_images[] = $image;
}
$masiv = @array_chunk($out_images, $pics_per_page, true);
$stranici = floor(count($out_images) / $pics_per_page);
if ((count($out_images) % $pics_per_page) > 0) { $stranici++; }
if (is_numeric($_GET['page']) && $_GET['page'] <= $stranici) {
$page = $_GET['page'];
} else {
$page = 1;
}
$red = 1;
foreach ($masiv[($page - 1)] as $pic)
{
$razp = explode("/", $pic);
for ($n=1;$n<=(substr_count($pics_folder, "/"));$n++) array_shift($razp);
array_pop($razp);
for ($i=0;$i<count($razp);$i++)
{
$url = array();
for($i2=0;$i2<=$i;$i2++)
{
$url[] = $razp[$i2];
}
}
echo "<a href="{$pic}" rel="lightbox"><img src="{$pic}" width="170" height="170" border="0" alt="gallery" /></a> \n";
if ($red == floor(sqrt($pics_per_page))) { $red = 1; echo "\n"; } else { $red++; }
}

echo "<br /><br />Страници: ";
for ($i=1;$i<=$stranici;$i++) {
if ($page != $i) {
echo "<a class="typ1" href="?page=$i">  $i</a> ";
} else {
echo "$i ";
}
}
?>
пробвай така :idea:
 

Back
Горе