Php在csv输出文件中插入转义字符

时间:2012-07-31 00:06:06

标签: php javascript

我使用这个php代码允许用户将dojo.enchancedgrid发送到文件并将其下载到他的机器上。该过程正常,但输出csv文件具有引号的转义行。我该怎样才能避免php为我插入这些内容。传递给函数(str)的字符串是可以的,但是在通过php代码之后是不同的。

我的javascript代码:

function exportCsv(){

var g = dijit.byId("grid");
g.exportGrid("csv",{
            writerArgs: {
                separator: ","
            }
            }, function(str){
                alert(str);


                    var form = document.createElement('form');
                    dojo.attr(form, 'method', 'POST');
                    document.body.appendChild(form);
                    dojo.io.iframe.send({
                            url: "csv.php",
                            form: form,
                            method: "POST",
                            content: {exp: str},
                            timeout: 15000
                    });
                    document.body.removeChild(form);

                    }); 

}

我的PHP代码:

$time = time();
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=\"grid_$time.csv\"");
$exportedData = $_POST['exp'];
echo $exportedData;

此外,服务器也在行中插入一些分析代码...... 非常感谢你的帮助。 下面是输出csv文件:

经度,纬度,网络,路由ID,测量

-74.18143812,40.62733114,“命名路线”,IN278,1

-73.90131905,40.75932358,“命名路线”,IN278,25

-73.8005193,40.73819062,“命名路线”,IN495,10

-73.82437443,40.79381815,“命名路线”,IN678,12

-73.79087796,40.66589334,“命名路线”,“纽约27”,12

< - Hosting24 Analytics代码 - >

< - Google Analytics代码结束 - >

2 个答案:

答案 0 :(得分:0)

  1. 您可以在客户端字符串(Javascript)上自行转义引号,并在PHP中取消它们 - 这样您就可以控制整个过程。
  2. 您拥有主机的“分析代码”的原因是您正在使用免费托管(我假设)。这不是分析,而是广告,添加到每个http响应中。在HTML页面上,它们看起来像底部的广告。如果你使用AJAX,它们就会妨碍你。如果您实际上是在为主持付费,请致电您的主机并要求他摆脱这些。

答案 1 :(得分:0)

正如zerkms建议的那样,这可能是由于magic quotes

尝试禁用它们。