PHP循环中未定义的偏移量错误

时间:2015-04-23 15:33:13

标签: php

我正在查看我的httpd错误日志,一遍又一遍地注意到这个错误

  

未定义的偏移:第43行的/usr/home/*****/*****/*****/*****/index.php为1。

我希望有人可以查看我的代码并看到他们发现任何可能导致此错误的问题

<?php $files = scandir('movies/');
            foreach($files as $file) {
              if ($file === '.' or $file === '..') continue;
              $t = str_replace("-", " ", $file);
              $section = explode(';', $t);
              $section = explode('.', $section[1]);
              $t = explode(';', $t);
              $t = $t[0]; 

获得错误的行是

$section = explode('.', $section[1]);

代码正在网站上运行,但却出错

1 个答案:

答案 0 :(得分:0)

会发生这种情况,因为爆炸后你的数组可能只包含falloff键,这意味着你前一行的[0]中没有;而整个$t都有进入第一个$t作业。

永远不要假设您在代码开发过程中始终拥有完整的数据。你为自己设置了陷阱。我建议接近以下解决方案:

$section

$section = explode(';', $t);
$section = explode('.', count($section) > 1 ? $section[1] : $section[0]);