1. 我正在创建一个脚本,该脚本将读取CSV文件并使用FGETCSV在文本中显示。

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

    “ line1-content1”,“ line1-content2”
    “ line2-content1”,“ line2-content2”

  3. 使用FGETCSV,内容将显示在文本中的内部,而无需双引号和逗号。 我可以格式化它,以便它还会显示二人行情和逗号吗?

  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-content1
    “,” line1-content2
    “,” line2-content1
    “,” line2-content2”

  6. 它将“ line1-content1”和“ line1-content2”分为两行,并在每行结束后放置一个逗号。

  7. 现在,我想保持#2的格式。 我将如何编码?

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

有帮助吗?

解决方案

听起来您想显示实际的原始CSV文本,而不是CSV中的分析数据。而不是使用 fgetcsv(), ,只使用 fgets() 而且您将获得文本行,而无需任何解析,可以保留报价和逗号。

至于fputcsv,它将写出您传递给它的内容,因此请确保清理表单中的任何内容(例如,额外的销售线路断开了)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top