使用PHP导入CSV - 使用explode

时间:2018-01-08 12:14:41

标签: php list undefined offset explode

我有一个从csv导入数据的脚本,并从导入sql表的数据中创建变量。一切正常,但错误日志因未定义的偏移错误而疯狂。

从我读过的内容是因为它只找到了索引[0],所以其他人都会抛出错误。

我已经查看过以下内容,似乎无法获得有效的建议:

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

PHP Notice: Undefined offset error when importing from .csv 还有更多...

以下是代码:

$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);

错误是在'列表中生成的。并且'爆炸'代码行。

道歉,对此非常陌生,已经阅读了多篇关于“为什么'只是没有找到修复,它是我填充错误日志的唯一错误类型。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你爆炸必须返回至少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);