为什么在从PHP转换的文本末尾添加特殊字符?

时间:2017-01-12 18:22:36

标签: php html ms-word

所以我从表单中获取这些值,然后将它们保存到word文档中。

如果我的输入(顺便说一下这是一个textarea)读取:

"This"
&
"That"

我希望输出完全像那样

然而,无论什么时候出现,它都是这样的:

enter image description here

它最后添加了那些特殊的块字符......

我怎样才能摆脱这些?

这些是我的变量:

$multipleImports = explode("\n",$_POST['multipleImports']);
$multipleImportsInfo = explode("\n",$_POST['multipleImportsInfo']);
$multipleImportsCounts = explode("\n",$_POST['multipleImportsCounts']);

在这里我将它们连接成一个字符串。

$length = count($multipleImports);
for ($i = 0; $i < $length; $i++) {
  $content = $content . $multipleImports[$i] . "          " . $multipleImportsInfo[$i] . "          " . $multipleImportsCounts[$i] . "\n ";
}

我试图修剪,我尝试使用html实体和html解码实体,没有尝试过。请帮忙。

2 个答案:

答案 0 :(得分:0)

我很想知道那些特殊字符是什么。你应该做一个十六进制转储来看。我只是瞥了一眼你的代码而没有认真考虑它,但是我立即想到的是Windows与* nix中的行尾不同。也就是说,如果数据来自Windows,我认为行尾是由回车符和换行符(“\ r \ n”)而不是换行符(“\ n”)提供的。

答案 1 :(得分:0)

在阅读@Tom Hedden的帖子之后,它给了我一个尝试这个的想法,它有效!

$length = count($multipleImports);
for ($i = 0; $i < $length; $i++) {
  $content = $content . $multipleImports[$i] . "          " . $multipleImportsInfo[$i] . "          " . $multipleImportsCounts[$i] . "\r\n ";
}