繁体   English   中英

在PHP中按新到旧的短显示图像

[英]Short display images by date newer to older in PHP

我正在使用以下功能来读取目录并将图像显示为图库,它的确运行良好,但是我需要显示按日期从新到旧的图像排序。

知道有人怎么使用这种方法吗?

function getPictures() {


        global $page, $per_page, $has_previous, $has_next;
        if ( $handle = opendir("saved/2013") ) {
            $lightbox = rand();

            $count = 0;
            $skip = $page * $per_page;


            if ( $skip != 0 )
                $has_previous = true;

            while ( $count < $skip && ($file = readdir($handle)) !== false ) {
                if ( !is_dir($file) && ($type = getPictureType($file)) != '' )
                    $count++;
            }
            $count = 0;
            while ( $count < $per_page && ($file = readdir($handle)) !== false ) {
                if ( !is_dir($file) && ($type = getPictureType($file)) != '' ) {
                    if ( ! is_dir('saved/2013') ) {
                        mkdir('saved/2013');
                    }


                    $strFileName = "saved/2013/".$file;
                    echo '<div id="imagen-t">';
                    echo '<p>' .date( "D d M Y g:i A", filemtime($strFileName)) . "</p>";
                    echo '<p><a href="saved/2013/'.$file.'" rel="lightbox['.$lightbox.']"><img src=saved/2013/'.$file.' alt="" width="220" /></a></p>';
                    echo '</div>';
                    $count++;
                }
            }


            while ( ($file = readdir($handle)) !== false ) {
                if ( !is_dir($file) && ($type = getPictureType($file)) != '' ) {
                    $has_next = true;
                    break;
                }
            }
        }
    }

结果如下: http : //www.espigoplatja.com/whale/galeria/

贡萨洛致敬

您是否看过USort: http ://php.net/manual/zh/function.usort.php它允许您使用用户定义的比较函数按值对数组进行排序。

一个例子

<?php
function my_sort($a,$b)
{
if ($a==$b) return 0;
   return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");

$arrlength=count($a);
for($x=0;$x<$arrlength;$x++)
   {
   echo $a[$x];
   echo "<br>";
   }

?>

顺便说一句,我尝试实现您提供的示例,它为所有图像显示相同的日期:

# SETTINGS
$per_page = 6;

$page = $_GET['page'];

$has_previous = false;
$has_next = false;




function getPictures() {


    global $page, $per_page, $has_previous, $has_next;
    if ( $handle = opendir("saved/2013") ) {
        $lightbox = rand();

        $count = 0;
        $skip = $page * $per_page;


        if ( $skip != 0 )
            $has_previous = true;



        while ( $count < $skip && ($file = readdir($handle)) !== false ) {
            if ( !is_dir($file) && ($type = getPictureType($file)) != '' )
                $count++;
        }

        function my_sort($a,$b)
        {
        if ($a==$b) return 0;
           return ($a<$b)?-1:1;
        }

        $count = 0;
        while ( $count < $per_page && ($file = readdir($handle)) !== false ) {
            if ( !is_dir($file) && ($type = getPictureType($file)) != '' ) {
                if ( ! is_dir('saved/2013') ) {
                    mkdir('saved/2013');
                }

                $a=array($file);
                usort($a,"my_sort");


                //$strFileName = "saved/2013/".$file;
                $strFileName = "saved/2013/".$a[$x];
                echo '<div id="imagen-t">';
                //echo '<p>' .date( "D d M Y g:i A", filemtime($strFileName)) . "</p>";
                echo '<p>' .date( "D d M Y g:i A", filemtime($strFileName)) . "</p>";
                echo '<p><a href="saved/2013/'.$file.'" rel="lightbox['.$lightbox.']"><img src=saved/2013/'.$file.' alt="" width="220" /></a></p>';
                echo '</div>';
                $count++;
            }
        }


        while ( ($file = readdir($handle)) !== false ) {
            if ( !is_dir($file) && ($type = getPictureType($file)) != '' ) {
                $has_next = true;
                break;
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM