列出目录/解压缩文件扩展名中的文件的问题

时间:2010-12-04 02:00:18

标签: php

我正在尝试仅列出目录中的jpg文件。有200多个,但使用下面的代码,只有大约100个列出。我尝试了不同的变体来提取文件扩展名,但这是唯一可行的:$sub = substr($file, -3);

有谁能告诉我为什么所有文件都没有出现?

完整来源:

<?php
  require('index.inc');
  $page = new buildpage();
  $page->buildHeader();

   $currentdir = '/home/tim/Documents/Web/';
   $dir = opendir($currentdir);
   echo "<ol>";
   while ($file = readdir($dir)){
      $file = readdir($dir);
      $sub = substr($file, -3);
      $ext = "jpg";
      if (strcasecmp($sub, $ext) == 0) {   
           echo "<li>$file</li>";
      }
   }
   echo "</ol>";
?>

2 个答案:

答案 0 :(得分:5)

你有

$ file = readdir($ dir)

那里两次。因此每次读取两次。因此200变为100.取出第二个,它应该工作。

答案 1 :(得分:1)

要提取文件扩展名,我会使用

$ext = pathinfo($file, PATHINFO_EXTENSION);

至于为什么只出现一些文件,这可能与jpeg文件有关,jpeg文件的扩展名不同,例如das Jpg或JP​​G,甚至可能是“jpeg”,这也是有效的。

编辑:当然,正如Iznogood指出的那样,你有两个readdir语句。