如何使用fgetcsv和fputcsv连接两个字符串?

时间:2011-01-14 04:12:57

标签: php csv fgetcsv fputcsv

  1. 我正在创建一个脚本,它将读取csv文件并使用fgetcsv在textarea上显示它。

      $handle = @fopen($filePath, "r");
    
      if ($handle)
      {
         while (($buffer = fgetcsv($handle, 1000,",")) !== false) 
         {
              foreach($buffer as $buff){
                 echo $buff."\n";
              }
    
         }
      }      
    
  2. csv的格式为

    “LINE1-内容1”, “LINE1-内容2”
    “LINE2-内容1”, “线路2-内容2”

  3. 使用fgetcsv,内容将显示在textarea内部,不带双引号和逗号。 我可以将其格式化,以便它还会显示duoble引号和逗号吗?

  4. 然后使用fputcsv保存它

    $file_to_load = $_GET['filepath'];
    
    $filePath = $dir.$file_to_load;
    
    $trans = trim($_POST['txtarea']);
    $keyarr = split("\n",$trans);
    
    $fp = fopen($filePath, 'w');
    foreach (array ($keyarr) as $fields) {
      fputcsv($fp, $fields);
    }
    
    fclose($fp);
    
  5. 查看csv文件,它保存了csv但显示如下

    “LINE1-内容1
    “”一号线,内容2
    “” 2号线,内容1
    “,”line2-content2“

  6. 它将“line1-content1”和“line1-content2”分成两行,并在每行结尾后加上一个逗号。

  7. 现在我想保留#2的格式。 我将如何编码?
  8. 你能引导我走向正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:0)

听起来您想要显示实际的原始CSV文本,而不是CSV中的已解析数据。不要使用fgetcsv(),只需使用fgets(),即可获得文本行而不进行任何解析,保留引号和逗号。

至于fputcsv,它会写出你传入的内容,所以要确保从表单中返回的内容被清除(例如,额外的换行符被删除)。