在解析之前,如何确保CSV文件包含数据?

时间:2019-05-01 20:29:33

标签: php xml csv

我有一个PHP文件,尝试打开CSV文件,将数据解析为XML格式,然后保存XML文件。在解析任何内容之前,要确保CSV文件确实具有我要查找的数据,这给我带来了挑战。

每天都会使用新信息更新CSV文件,并且每天都会执行PHP脚本来更新XML文件。

我试图使用Sys.sleep(2) PHP函数检查返回的数组是否大于1,但这仅检查CSV中的一行。我不确定这是最好的方法。

p

我希望获得一个保存的XML文件,其中包含从employee.csv文件解析的所有数据。如果由于某种原因该CSV文件被覆盖而没有数据(空CSV),则我不希望PHP脚本覆盖该XML文件。

2 个答案:

答案 0 :(得分:2)

您不应直接覆盖文件,而应创建新的临时文件,向其中写入已解析的数据,然后删除旧文件并将临时文件重命名为预期名称IF,并且仅在解析顺利的情况下。

检查大小等是天真的-还有很多其他事情可能出错,包括中间文件等中的CSV内容格式错误。在遇到麻烦的情况下,您最终将没有有效文件,而按照建议的方式,您至少还有最后一个有效文件,就像没有发生任何错误一样。除非您另外确定(根据任何选择的标准),否则您应该始终假设解析出错。

答案 1 :(得分:0)

我会做这样的事情:

<?php

$content = file_get_contents('employees.csv');
if (!empty($content))
{
   $lines = explode("\n", $content);
   foreach ($lines as $line)
   {
       // $line = 1 line
   }
}