PHP htmlentities或htmlspecialchars

时间:2016-02-04 03:49:29

标签: php

我正在使用fwrite创建一个xml文件,但我失去了特殊的字符。

示例:

$message0  = htmlspecialchars('<?xml version="1.0" encoding="UTF-8"?>');
$file = fopen("test.xml","w");
echo fwrite($file,"$message0");
fclose($file);

上面的代码给出了以下输出

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;JobTemplates&gt;

我需要特殊字符才能使xml文件正常工作。如果我回显变量,页面上会出现特殊字符。

2 个答案:

答案 0 :(得分:1)

不理解为什么要为此编码html字符。它是一个受信任的字符串,因此,只需将其放在单引号中并编写即可。如果任何角色给你带来麻烦,请逃避它们而不是编码它们。

如果有这样的原因你必须这样做,那么解码内联。但这对我来说似乎有些混乱。

答案 1 :(得分:1)

这是一个经过测试的示例,您不应该使用htmlspecialchars

$message0  = '<?xml version="1.0" encoding="UTF-8"?><contact><name>foo</name><phone>123456</phone></contact>';
$file = fopen("test.xml","w");
fwrite($file,$message0);
fclose($file);