以CSV格式转义单引号

时间:2011-10-13 12:51:08

标签: symfony1 symfony-1.4

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

我有一些代码:

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

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

这将在CSv文件中输出以下内容:

评论, 我喜欢奶酪

我遇到的问题是我在评论中输出单个quoutes,例如i'm loving cheese

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

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

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

由于

2 个答案:

答案 0 :(得分:0)

您可以使用“值”包装您的值

答案 1 :(得分:0)

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

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

    echo $csv->getComments(ESC_RAW);

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

    $csv = $csv->getRawValue();