在CSV和&amp ;;上验证标题文本

时间:2014-11-04 16:38:21

标签: php mysql validation

我有一个基本的导入工具,我们用它来使用PHP上传到我们的数据库。 这是一个示例脚本。 我的问题是如何在导入之前验证标题?基本上检查一个值,以确保正确的文件被导入。我在网上到处看,但似乎找不到答案 我的标题是

  

SKU,价格,活跃

     
    

LOAD DATA LOW_PRIORITY LOCAL INFILE'$ file'INTO TABLE sampleyour_temp_table FIELDS TERMINATED BY''     由'\''IGNORE 1 LINES终止的'\''线路的选择性封闭     //继续运行其余脚本

  

我的问题是如何在脚本运行之前验证标头? 我正在使用

  

$ file = $ _GET ['file'];   $ file = urldecode($ file); //上传文件

1 个答案:

答案 0 :(得分:8)

我认为您需要阅读$file的第一行并将其与标题列表进行比较:

$requiredHeaders = array('SKU', 'Price', 'Active'); //headers we expect

$f = fopen($file, 'r');
$firstLine = fgets($f); //get first line of csv file
fclose($f); // close file    

$foundHeaders = str_getcsv(trim($firstLine), ',', '"'); //parse to array

if ($foundHeaders !== $requiredHeaders) {
   echo 'Headers do not match: '.implode(', ', $foundHeaders);
   die();
}

//run import script…