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


Php inserting escape characters in the csv output file

我使用这个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文件:

Lon,Lat,网络,RouteId,测量

-74.18143812,40.62733114,"命名路线",IN278,1

-73.90131905,40.75932358,"命名路线",IN278,25

-73.8005193,4.73819062,"命名路线",IN495,10

-73.8243743,40.79381815,"命名路线",IN678,12

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

<--Hosting24分析代码-->

&lt--分析代码结束-->

  1. 您可以自己在客户端字符串(Javascript)中转义引号,并在PHP中对其进行取消转义,这样您就可以控制整个过程
  2. 你之所以有宿主的"分析代码"是因为你使用的是免费宿主(我想)。这不是分析,而是广告,添加到每个http响应中。在HTML页面上,它们看起来就像底部的广告。如果你使用AJAX,它们就会妨碍你。如果你真的在为招待付费,打电话给你的招待,让他把这些扔掉

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

尝试禁用它们。