【问题标题】:How do you check whether a CSV file is corrupted in PHP and/or Javascript?如何检查 CSV 文件是否在 PHP 和/或 Javascript 中损坏?
【发布时间】:2014-01-23 07:30:56
【问题描述】:

我正在制作一个 HTML5/jQuery/PHP 应用程序,其中涉及上传 CSV 文件(通过拖放),并将它们处理到 MySQL 数据库。到目前为止,我可以上传文件,并且知道如何将它们读入数据库。

我的问题: 我想知道是否可以通过 PHP 或 Javascript/jQuery 检测 CSV 文件的格式是否损坏?例如,我可以将 somefile.png(图像)重命名为 somefile.csv,它仍然会被上传。如果我在 Notepad++ 中打开重命名的文件,我看到的只是垃圾,这是意料之中的。

我想在客户端执行此操作,因此我可以提醒用户(通过 JQuery)该文件的格式是否损坏。在开始迭代每个 CSV 文件以进行数据库处理之前,我还想检查服务器端(通过 PHP)。

我的第一个想法是使用正则表达式,但我不确定如何为这个特定问题制作正则表达式。我知道正则表达式的基础知识,但之前没有真正在高级设置中使用过它们。

【问题讨论】:

    标签: javascript php jquery mysql csv


    【解决方案1】:

    首先你应该检查选择文件的内容类型,它应该是“text/csv”。在服务器端,您可以通过 fgetscsv PHP 函数 (http://php.net/manual/function.fgetcsv.php) 检查文件(错误时捕获 null 或 false)

    【讨论】:

    • 我已经在 CSV 文件上使用 fgetcsv... 如果我要在 try-catch 块中处理 CSV,我可以捕获哪些异常?我还通过 jQuery 和 AJAX 检查内容类型。
    • 我的意思是你可以检测 fgetcsv 是否返回 false 而不是值数组。 False 表示文件数据不正确。
    • 我仔细查看了 PHP 主站点上的函数,听起来他们的“示例 #1 读取并打印 CSV 文件的全部内容”示例演示了您的意思。我正在使用 curl 和 fgetcsv 的组合,但会更改我的代码以适应。
    【解决方案2】:

    如果您要在之后立即阅读它,您不想验证它。只需阅读它并在阅读时发现任何错误。这样您就可以知道文件是有效的还是损坏的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      • 2013-03-24
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多