使用 PHP 的 CSV 导入 - 使用爆炸的未定义偏移

CSV Import using PHP - Undefined Offset using explode

我有一个脚本,它从 csv 导入数据并根据导入到 sql 表中的数据创建变量。一切正常,但错误日志因 Undefined Offset 错误而变得疯狂。

据我所知,这是因为它只找到索引 [0],所以任何其他人都会抛出错误。

我查看了以下内容,但似乎无法让建议起作用:

PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"

还有更多...

代码如下:

$filename='XXXXX_'.$today.'.csv';
$url=$proto.$user.':'.$pass.'@'.$server.$path.$filename;
$csv_data=file_get_contents($url);
foreach(preg_split("/((\r?\n)|(\r\n?))/", $csv_data) as $line){


list($type, $id, $ref) = explode(',', $line);

错误发生在 'list' 和 'explode' 代码行。

抱歉,对此很陌生,已阅读 'why' 上的多篇文章,但未找到修复方法,这是我填充错误日志的唯一错误类型。任何帮助将不胜感激。

你爆炸必须return至少3个输出,如果行中存在少于3个项目,将显示错误。对于这种情况,您可以使用:

$lineData = explode(','$line);

$type = isset($lineData[0]) ? $lineData[0] : null;

$id = isset($lineData[1]) ? $lineData[1] : null;

$ref = isset($lineData[2]) ? $lineData[2] : null;

或使用:

@list($type, $id, $ref) = explode(',', $line);