【问题标题】:csv_output containing with field . (full stop)csv_output 包含字段。 (句号)
【发布时间】:2014-06-06 00:10:26
【问题描述】:

我有一个 php 脚本,它生成一个制表符分隔的 .txt 文件,效果很好,但我需要输出一个包含 .txt 文件的字段。 (句号/句点)在 $model 字段中,即 itemname.1 它会影响文件的格式。

$csv_output .= $model . "\t";
$csv_output .= '' . "\t";
$csv_output .= '' . "\t";
$csv_output .= '' . "\t";
$csv_output .= $totalstock . "\t";
$csv_output .= $leadtime . "\t";
$csv_output .= "\n";

$csv_handler = fopen('../outputfile.txt','w');
fwrite ($csv_handler,$csv_output);
fclose ($csv_handler);

我尝试用双引号和其他各种变体括起来,但输出插入换行符 示例输出

itemname.1

            20  1   

任何想法我可以如何输出带有 .在它们中而不影响选项卡/行。

【问题讨论】:

  • 为什么. 会影响标签页?
  • 有什么理由不使用fputcsv()
  • 我认为这与句号无关。我认为$model 的末尾有一个换行符。尝试使用trim($model)
  • 也许 $model 实际上是 itemname.1\r\n ?
  • 没有项目名称,因为它来自 sql 表,我已经仔细检查过。我有一个重复的表,项目名称中没有 .1 等,这很好用。它肯定是 .在导致问题的 $model 中

标签: php csv export-to-csv


【解决方案1】:

您能否向我们展示您将变量括在引号中的代码?

消息不太灵通的解决方案似乎是使用 replace() 来测试 .确实导致了新行,或者如果它是“其他东西”。您甚至可以直接替换新行。

【讨论】:

  • HI Mark 它肯定是 .在导致它的字段中,如果我使用没有 .在模型中,输出符合预期。如果我删除 $csv_output .= $model 。 "\t";但将其他列留在原处,输出也很好(减去包含.的型号)
  • 好的。您是否尝试使用 replace 替换换行符或 .字符?
【解决方案2】:

这是一个小学生的错误。 问题是导入 db 的数据在每行条目上都有回车符,尽管数据在 db 和 excel 中显示正确,但问题仅在输出文件中表现出来。 感谢你们的帮助,让我回到源头并找出问题所在。

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 2011-12-26
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多