如何使这个PHP图像文件以数字方式抓取脚本排序?

时间:2012-09-21 17:19:29

标签: php

  

可能重复:
  How to sort array of value by alpha bet in php using asort() function()

基本上,脚本从目录中读取图像,然后将它们输出到html。因此,只是尝试使这个非常好的脚本按字母顺序对图像进行排序。现在它对图像进行分类的方式非常随意             

        if ($handle = opendir($dir)) {
        while (false!== ($file = readdir($handle))) {
        sort($file);
        $ext = strrchr($file,".");
        echo "";
        if(in_array($ext,$good_ext))
        {   
        //do something with file
        echo "<img src='images/".$modelname."/slider/".$file."'>";
        }
        else
        {
        echo "bad";
        }
        }
        closedir($handle);
        }
        else
        {
        echo "$dir Directory does not exist!";
        }
        ?>

2 个答案:

答案 0 :(得分:0)

这应该这样做。

if ($handle = opendir($dir)) {
    while (false!== ($file = readdir($handle))) {
        $ext = strrchr($file,".");
        echo "";
        if(in_array($ext,$good_ext)) {          
            $files[] = $file;
        }

    }
    closedir($handle);

    sort($files);

    //do what what you need with it

}
else {
    echo "$dir Directory does not exist!";
}
?>

$ files将所有文件排序,就像您需要的那样。

答案 1 :(得分:0)

您可以使用natsort

示例

$img =    "<img src='images/$modelname/slider/%s' />";
$imgExts = array("gif", "jpg", "jpeg", "png", "tiff", "tif");
$files = scandir(__DIR__);
natsort($files);

foreach($files as $file)
{
    $urlExt = pathinfo($file, PATHINFO_EXTENSION);
    if (in_array($urlExt, $imgExts)) {
        printf($img,$file);
    }
}