首页 文章

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

提问于
浏览
0
  • 我正在创建一个脚本,它将读取csv文件并使用fgetcsv在textarea上显示它 .
$handle = @fopen($filePath, "r");

  if ($handle)
  {
     while (($buffer = fgetcsv($handle, 1000,",")) !== false) 
     {
          foreach($buffer as $buff){
             echo $buff."\n";
          }

     }
  }
  • csv的格式是

"line1-content1","line1-content2" "line2-content1","line2-content2"

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

  • 然后使用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);
  • 查看csv文件,它保存了csv但显示如下

"line1-content1 ","line1-content2 ","line2-content1 ","line2-content2"

  • 它将“line1-content1”和“line1-content2”分成两行,并在每行结束后加上逗号 .

  • 现在我想保留#2的格式 . 我将如何编码?

你能引导我走向正确的方向吗?谢谢!

1 回答

  • 0

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

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

相关问题