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