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

PHP: Undefined offset while using explode a scandir

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

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

像这样修正

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

scandir returns 目录 (ref) 中文件和目录的 数组 。您需要 for 循环的数组长度。你可以用 count().

得到这个

将您的 for 循环更改为

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

scandir returns 来自 directory.SO 的文件和目录数组 你必须得到 elemeny.You 的总数 忘记 count 来得到元素的总数 array

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

阅读count()

用foreach代替for,你不知道里面有多少文件,而且foreach用起来很简单

foreach($a as $file){
    print_r(explode('.',$file));
}