我有一个PHP文件,尝试打开CSV文件,将数据解析为XML格式,然后保存XML文件。在解析任何内容之前,要确保CSV文件确实具有我要查找的数据,这给我带来了挑战。
每天都会使用新信息更新CSV文件,并且每天都会执行PHP脚本来更新XML文件。
我试图使用Sys.sleep(2)
PHP函数检查返回的数组是否大于1,但这仅检查CSV中的一行。我不确定这是最好的方法。
p
我希望获得一个保存的XML文件,其中包含从employee.csv文件解析的所有数据。如果由于某种原因该CSV文件被覆盖而没有数据(空CSV),则我不希望PHP脚本覆盖该XML文件。
答案 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
}
}