Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php fgetcsv不';t验证此文件是否为csv文件_Php_Validation_Csv - Fatal编程技术网

Php fgetcsv不';t验证此文件是否为csv文件

Php fgetcsv不';t验证此文件是否为csv文件,php,validation,csv,Php,Validation,Csv,这个问题已经被问过好几次了,但事实证明,我遇到的所有答案都是错误的 我在验证文件是否为CSV时遇到问题。用户上传一个文件,应用程序检查fgetcsv是否有效,以确保它是一个CSV文件,而不是Excel文件或其他文件。这是我通过谷歌找到的传统答案 e、 g: 上面出现的是“sos yer face”,因为只要有一个文件要读取,无论您给出什么,只要句柄来自fopen($fileName,'r'),fgetcsv都将验证为真;当使用fopen($fileName,'w')或'a'时,fgetcsv始终

这个问题已经被问过好几次了,但事实证明,我遇到的所有答案都是错误的

我在验证文件是否为CSV时遇到问题。用户上传一个文件,应用程序检查fgetcsv是否有效,以确保它是一个CSV文件,而不是Excel文件或其他文件。这是我通过谷歌找到的传统答案

e、 g:

上面出现的是“sos yer face”,因为只要有一个文件要读取,无论您给出什么,只要句柄来自fopen($fileName,'r'),fgetcsv都将验证为真;当使用fopen($fileName,'w')或'a'时,fgetcsv始终为false,因为指针将在EOF处启动。这是根据php.net文档


也许我说的是荒谬的,我只是没有意识到。任何人都可以修复我的大脑。

验证文件是否为CSV文件的问题在于CSV不是一种定义良好的格式。事实上,根据CSV的大多数定义,几乎任何文件都是有效的CSV,将每一行视为一行和一列


您需要针对正在使用的域制定自己的验证例程。

验证文件是否为CSV文件的问题在于CSV不是一种定义良好的格式。事实上,根据CSV的大多数定义,几乎任何文件都是有效的CSV,将每一行视为一行和一列


您需要针对您正在使用的域提出自己的验证例程。

这是调试错误消息专业化的一个光辉例子。谢天谢地,这只是一个模型,让我学习起来很愉快。在商业环境中这样做之前,我会三思而后行,也许这是调试错误消息方面专业精神的光辉典范。谢天谢地,这只是我学习乐趣的一个模型。在做生意之前,我可能会三思而后行
if ($form->file->receive()) {
    $fileName = $form->file->getFileName();
    $handle = fopen($fileName, 'r');    // or 'w', 'a'

    if (fgetcsv($handle)) {
        die('sos yer face');
    }

    if ($PHPExcelReader->canRead($fileName)) {                
        die('that\'s what she said');
    }
}