【问题标题】:escaping single quotes in a CSV转义 CSV 中的单引号
【发布时间】:2011-10-13 12:51:08
【问题描述】:

我正在尝试将非常基本的数据输出到 CSV 文件

我有一些类似的代码:

 <?php echo $csv->getComments() ?>,

<?php echo "comments"."," ?>

这会在 CSV 文件中输出以下内容:

cmets, 我喜欢奶酪

我遇到的问题是当我在 cmets 中输出单个引用时,例如 i'm loving cheese

这会输出 ,i&amp;#039;m loving cheese 并破坏我的 CSV 文件。

有没有办法替换已编码的单引号或仅删除单引号?

我已经看到我可以在 settings.yml 中使用 escaping_method,但是使用任何选项似乎都不会影响输出。

谢谢

【问题讨论】:

  • 好的,所以我关闭了escaping_method (false)。这似乎解决了我的问题。
  • 你也可以使用 html_entity_decode() 并且仍然使用 Symfony 转义,这对于编写有效的 HTML 很有用
  • 只要&lt;?php echo $csv-&gt;getComments(ESC_RAW) ?&gt;

标签: symfony1 symfony-1.4


【解决方案1】:

问题似乎是 symfony 的输出转义器。传递给部分的所有对象都自动包装在转义输出转义器对象中。有两种方法可以获取评论的原始价值:

  1. 在输出转义器对象上调用的部分每个方法都接受一个“神奇”的最后一个参数,定义要使用的转义方法。所以在你的情况下你可以使用:

    echo $csv-&gt;getComments(ESC_RAW);

  2. 您可以通过在部分的第一行调用装饰器 getRawValue() 方法从输出转义器中释放 $csv 对象:

    $csv = $csv-&gt;getRawValue();

【讨论】:

    【解决方案2】:

    你可以用“价值”来包装你的价值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      相关资源
      最近更新 更多