php – 如何验证csv文件?

前端之家收集整理的这篇文章主要介绍了php – 如何验证csv文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们如何验证CSV文件

我有一个CSV文件结构:

Date;Id;Shown
15-Mar-10;231;345
15-Mar-10;232;346
and so on and on !!! approx around 80,000 rows.

在开始使用fgetcsv进行解析之前,如何验证此CSV文件

我不会尝试手动验证文件:我宁愿更愿意逐行处理,分别处理每一行:

>读一行
>验证没关系
>使用数据
>并转到下一行.

现在,什么可以“验证它的确定”意味着?

>至少:确保我可以读取行为CSV,与我的正常的一组功能(也许fgetcsv,也许一些其他功能特定于我的项目 – 无论如何,如果我无法读取一行,我的功能读取数百,它是可能是因为那条线有问题)
>然后,检查字段的数量
>然后,对于每个字段,检查它是否包含“有效”数据

>强制性选项?
>数字?
>字符串?
>日期?
>等等

>那么,一些更仔细的检查

例如,对于“代码”字段:它是否对应于我的应用程序合法的值?

如果一切顺利 – 好吧,不用多做,除了使用数据;-)
当你完成一行,只要重复下一个.

当然,如果要在完成任何数据库(或任何类似的)写入之前接受或拒绝整个文件,则必须:

>逐行解析文件,应用“验证”的想法
>将每行的数据存储在内存中
>并且当整个文件被读取到内存时,

>开始使用数据
>或者,如果一行出现错误,则拒绝所有内容.

在具体情况下,您有三种字段:

Date;Id;Shown
15-Mar-10;231;345
15-Mar-10;232;346

从我可以猜到:

>第一个必须是一个约会

>使用一些正则表达式验证这不容易:每个月不一样的天数,有几个月,根据年份,在二月不一样的天数…
>在这种情况下,我可能会尝试用strtotime解析日期(不知道你使用的格式是否正常)
>或者我只是explode的字符串

确保有三个部分
>第三个是2位数
>第二个是1月,2月,3月之间的…
>第一个对应于正确的天数,这取决于其他两个天数

>第二个:

>必须是一个整数
>必须是您的数据库中存在的有效值?

>如果是这样,一个简单的SQL查询将允许您检查

>对于第三个,不太确定…

>我猜这是一个整数吗?

猜你在找的PHP相关文章