【发布时间】:2014-10-22 14:44:21
【问题描述】:
我正在尝试使用 fputcsv 使用 php 创建一个 csv 文件,其中一个单元格包含 javascript 代码。 我遇到的问题是包含 javascript 代码的单元格包含以下字符:
' | " \ / ,
这会在我每次加载 csv 文件时破坏它。它将 javascript 代码中的逗号视为分隔符,因此将代码拆分到多个单元格中。
我正在 excel 中查看 csv 文件。
我知道excel会用双引号封装字符串,例如短语:
乔说:“怎么样?”
将被转换为
”乔说,“怎么样?””
但是使用 javascript 代码,这种封装不起作用。
这是一段需要放入 csv 的有问题的 javascript 代码:
document.body.innerHTML.toLowerCase().replace(/\s|\"|\'/g, "");
上面 js 中的 \" 是导致问题的原因,而 g 后面的逗号正在启动一个新单元格。
如果我执行str_replace('\"','', ** javascript code **);,则 csv 会正确生成。但是我不允许更改任何 js,只能转义字符
任何人都可以提供任何解决此问题的方法吗?也许有一种方法可以在 \" 上执行 str_replace,将其保留在 js 中,但将其正确转义以便 excel 在单元格中查看?
非常感谢
乔
【问题讨论】:
-
您可以更改分隔符
fputcsv($fileHandle, $array, "\t"); -
不幸的是,js代码中也有标签......
-
使用在代码中永远不会发生的混合并将其用作分隔符 /delimiter '||||'...你不能删除 JS 中的制表符吗?
标签: javascript php excel csv fputcsv