【问题标题】:How do i split a string from a csv file to a partiqular format in php?如何将字符串从 csv 文件拆分为 php 中的特定格式?
【发布时间】:2012-03-26 17:56:15
【问题描述】:

我有一个带有以下几行的 csv 文件(例如 2 行):

004000001001030212001Y  5372 #0001 N,"1","2","3","4","5","5","0"

004000002001030212001Y  5372 #0001 N,"1","2","3","4","5","5","0"

我要做的是在php中读取csv文件,然后按以下方式重新格式化:

id   date              lp   Lang    token   cod1   cod2   cod3   cod4   cod5   cod6   cod7  

1    03/02/2012 18:00  2    el      grapto  1      2      3      4      5      5      0

2    03/02/2012 18:00  2    el      grapto  1      2      3      4      5      5      0

id 是第 8 位和第 9 位。日期是第 13 位到第 18 位数字。然后再次将其导出为 csv。

任何帮助都可以。 谢谢

【问题讨论】:

    标签: php csv split


    【解决方案1】:

    fgetcsv 表示此类内容

    http://sg2.php.net/manual/en/function.fgetcsv.php

    要从那个长字符串中获取 id 和日期,你可以这样做:

    $id = substr($longString, 8, 2);
    $dateStr = substr($longString, 13, 8);
    $date = substr($dateStr, 0, 2) . '/' . substr($dateStr, 2, 2) . '/' . substr($dateStr, 4, 4);
    

    现在去实施:)

    【讨论】:

      【解决方案2】:

      不确定您如何从这些输入中获得18:00 2 el grapto,但这会做其他事情:

      $lines = explode("\n", $file);
      echo "id date Ip Lang token cod1 cod2 cod3 cod4 cod5 cod6 cod7\n";
      foreach ($lines as $line)
      {
          $values = explode(",", $line);
          $string = array_shift($values);
      
          $values = array_map(function($value) { return str_replace("\"", "", $value); }, $values);
      
          $id = substr($string, 7, 2);
      
          $date = date_parse_from_format("mdy", substr($string, 12, 6));
          $date = date("m/d/Y", mktime(0, 0, 0, $date["month"], $date["day"], $date["year"]));
      
          list(, $ip, $lang, $token) = explode(" ", $string);
      
          array_unshift($values, $id, $date, $ip, $lang, $token);
      
          echo implode(" ", $values) ."\n";
      }
      

      输出:

      id date Ip Lang token cod1 cod2 cod3 cod4 cod5 cod6 cod7
      01 03/02/2012 5372 #0001 N 1 2 3 4 5 5 0
      02 03/02/2012 5372 #0001 N 1 2 3 4 5 5 0
      

      【讨论】:

      • 我收到以下错误:解析错误:语法错误,意外的 T_FUNCTION,在第 8 行的 /home/Oo4QrE/prog.php 中期待 ')'
      • 如果我将我的代码复制并粘贴到一个空白的 PHP 脚本中,我不会收到任何错误。您的代码中的其他地方一定有错误,可能是忘记的分号或花括号。您可以将您的实际代码(至少到第 8 行)复制粘贴到您的问题中,我可以帮助您追踪它吗?
      猜你喜欢
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多