PHP:使用explode a scandir时未定义的偏移量

PHP:使用explode a scandir时未定义的偏移量,php,undefined,offset,explode,scandir,Php,Undefined,Offset,Explode,Scandir,我正在尝试分解目录的文件名。 但是我有个错误。像这样更正 <?php $dir = "user/jas527/uploads/"; $a = scandir($dir); for($i=2;$i<$a;$i++){ print_r(explode('.',$a[$i])); } ?> scandir返回目录中的文件和目录数组。您需要for循环的数组长度。你可以用count买这个 将for循环更改为 for($i=2; $i<count($a); $i++){ s

我正在尝试分解目录的文件名。
但是我有个错误。

像这样更正

<?php
$dir = "user/jas527/uploads/";
$a = scandir($dir);
for($i=2;$i<$a;$i++){
print_r(explode('.',$a[$i]));
}
?>

scandir返回目录中的文件和目录数组。您需要for循环的数组长度。你可以用count买这个

将for循环更改为

   for($i=2; $i<count($a); $i++){

scandir从目录返回一个文件和目录数组。因此,您必须获取元素总数。忘记计数才能获取数组中元素的总数


阅读

使用foreach而不是for,您不知道其中有多少文件,而且使用foreach非常简单

for($i=2;$i<count($a);$i++){

请与我们共享此错误…文件夹中不存在目录,或者a为空,因此scandir无法打开该目录。当advice开始学习如何调试代码时,从长远来看,它将帮助您。scandir将返回一个文件和目录数组。您需要for循环的数组长度。你可以和伯爵一起去拿。我将在下面的回答中解释,candir返回数组,因此必须使用count函数count数组中的所有元素
for($i=2;$i<count($a);$i++){
foreach($a as $file){
    print_r(explode('.',$file));
}