PHP功能 - READDIR文件列表的订购是奇怪的



我有一些php脚本读取图像目录,并回声搜索用户搜索的结果。

我需要找到一种从目录中排序这些搜索结果的方法,我知道您可以在数组上使用natsort(),但这无济P>

有人知道这是否可行吗?或者,也许更容易调整我的代码以先将文件名添加到数组中?

  <?php
    $dir = get_post_meta($post->ID, "Library", true);
    // Open a known directory, and proceed to read its contents
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
                if(stristr($file,$_POST['image_search'])){
                    echo ('<li><div class="thumb-contain"><a href="/'.$dir . $file.'" class="photo-link" rel="attachment"><img src="/asset-thumbs/'. $file .'" /></a><br/><p><a href="/'.$dir . $file.'" class="photo-link" target="_blank">View image</a> | <a href="/download.php?download_file='.$dir . $file.'">Download image</a> <p>'. $file .'</p></div></li>');
                }
            }
            closedir($dh);
        }
    }
  ?>

好吧,我通过将结果添加到数组中来工作 - 我不是PHP向导,因此,如果有人发现任何可能更清洁的东西都很棒,否则感谢您的帮助。

<?php
$dir = get_post_meta($post->ID, "Library", true);
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if(stristr($file,$_POST['image_search'])){
                $files[] = $file;
            }
        }
        closedir($dh);
        natsort($files);
            foreach($files as $file) {
                echo ('<li><div class="thumb-contain"><a href="/'.$dir . $file.'" class="photo-link" rel="attachment"><img src="/asset-thumbs/'. $file .'" /></a><br/><p><a href="/'.$dir . $file.'" class="photo-link" target="_blank">View image</a> | <a href="/download.php?download_file='.$dir . $file.'">Download image</a> <p>'. $file .'</p></div></li>');
            }
    }
}
?>

您可以使用函数 scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )-返回数组并支持排序作为选项。

相关内容

  • 没有找到相关文章

最新更新