【问题标题】:reading txt file using php , storing content to database使用 php 读取 txt 文件,将内容存储到数据库
【发布时间】:2015-04-26 22:41:46
【问题描述】:

我有一个 txt 文件,其数据与以下类似。我需要使用php读取文件并将内容存储在数据库中,我试图分解该行并将其读入数组,但第7列本身包含“,”因此无法使用“,”正确分解它。对此有任何帮助,如何完成。

"MN", 2215," 309   ","4002 ",10,"10463","VAN TULL, GORDON     ",000003120,"  ",1, 2, 4, "Y" 
"MN", 2215," 309   ","4002 ",10,"10463","RODRIGUEZ, RANDY     ",000003120,"  ",1, 2, 4, "Y"

我正在尝试关注

$handle = fopen($filename, "r")


1) $line = fgetcsv($handle,",")
    this is not working as column 7th itself have "," in its value.

2)
   $Line = fgets($handle);
   $data=explode(",",$Line);
   if count($data)>13 
    // concatenating col 6 and 7

【问题讨论】:

  • 我正在尝试我没有看到你的尝试!请给我们看
  • php中有专门处理csv文件的函数,请使用

标签: php database csv explode


【解决方案1】:

至少有几种方法

  1. 简单的方法是用一些特殊字符替换所有必要的逗号并爆炸

  2. 位编程 - 使用正则表达式

    $contents = file_get_contents(__dir__.'/sample.txt');
    
    $rows = explode(PHP_EOL, $contents);
    
    foreach($rows as $row){
        $cols = preg_split('/,(?=(?:[^"]|"[^"]*")*$)/', $row);
        // do what you want to do with cols, which is an array of columns
    }
    

【讨论】:

    【解决方案2】:

    您没有提到您如何尝试解析 csv,但我猜您只是将其拆分为逗号。相反,请尝试fgetcsv

    【讨论】:

      猜你喜欢
      • 2011-04-14
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 2010-11-07
      • 2017-11-06
      相关资源
      最近更新 更多