使用PHPExcel检测已编辑的csv文件

时间:2017-10-02 03:48:22

标签: php csv phpexcel

我正在使用PHPExcel来验证csv文件,然后解析它们并存储在我的数据库和服务器中。我正在尝试使用文件属性来确定文件是否已被修改或是否是原始文件。我使用了以下.xls,.xlsx,效果很好(使用适当的阅读器);

    $file = $_FILES['file']['tmp_name'];
    $reader = new PHPExcel_Reader_CSV();
    if($reader->canRead($file)){
        $object = $reader->load($file);
        $created = $object->getProperties()->getCreated();
        $modified = $object->getProperties()->getModified();
        if(!$created===$modified){
             //File has been edited and cannot be used
        }else{
            //File is good, continue processing
        }
    }

但是,使用CSV文件时,NOTHING正在按预期工作。我将MS-Word文档重命名为.csv->传递,编辑了csv->传递,甚至使用了.jpg->传递。到底是什么我错过了?任何帮助将非常感谢!编辑 - >我应该注意$created$modifedvar_dump($object)完全匹配,尽管已编辑文件并确认文档属性中的更改。

1 个答案:

答案 0 :(得分:0)

可从PHPExcel访问的属性值是存储在文件本身中的属性值,而不是存储在该文件的目录条目中。

CSV文件没有自己的固有属性; CSV纯粹是原始数据文件格式这些属性方法用于访问以其他电子表格格式存在的属性,例如支持它们的BIFF(xls)和OfficeOpenXML(xlsx)。将CSV(或其他不支持属性的格式)加载到PHPExcel中将为这些属性提供默认值(这样您正在进行的调用不会触发致命错误),但它无法为某些内容提供实际值原生以加载的格式存在。