DirectoryIterator は、現在のディレクトリ ('.' で示される) と以前のディレクトリ ('..' で示される) を $files としてカウントしています。そのようにコードをデバッグします。
$x=0;
$filepath='C:\xampp\htdocs\\';
$dir = new DirectoryIterator($filepath);
foreach($dir as $file ){
echo $file . "<br/>";
$x++;
}
echo $x;
次に、@Prix による上記のコメントで述べたように、$file->isDot() の場合はスキップできます。ディレクトリをカウントしたくない場合は、$file->isFile() でない場合もスキップできます。
$x=0;
$filepath='C:\xampp\htdocs\\';
$dir = new DirectoryIterator($filepath);
foreach($dir as $file ){
if ($file->isDot() || !$file->isFile()) continue;
//echo $file . "<br/>";
$x++;
}
echo $x;