0

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

经度、纬度、网络、RouteId、测量

-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,\"命名路线\",\"NY 27\",12

<-- Hosting24 分析代码-->

<--分析代码结束-->

4

2 回答 2

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

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

尝试禁用它们。

于 2012-07-31T00:21:29.143 回答