我正在尝试仅列出目录中的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>";
?>
答案 0 :(得分:5)
你有
$ file = readdir($ dir)
那里两次。因此每次读取两次。因此200变为100.取出第二个,它应该工作。答案 1 :(得分:1)
要提取文件扩展名,我会使用
$ext = pathinfo($file, PATHINFO_EXTENSION);
至于为什么只出现一些文件,这可能与jpeg文件有关,jpeg文件的扩展名不同,例如das Jpg或JPG,甚至可能是“jpeg”,这也是有效的。
编辑:当然,正如Iznogood指出的那样,你有两个readdir语句。