Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
htmlspecialchars-php的问题_Php_Xml_Encoding_Htmlspecialchars - Fatal编程技术网

htmlspecialchars-php的问题

htmlspecialchars-php的问题,php,xml,encoding,htmlspecialchars,Php,Xml,Encoding,Htmlspecialchars,我使用的是PHP5.3.3 我正在创建一个XML文件,但是htmlspecialchars函数有问题 这是正确的 htmlspecialchars('Day & Night;',ENT_COMPAT,'UTF-8',false); 产量-日及;夜 然而,这是行不通的 htmlspecialchars('Day &Night;',ENT_COMPAT,'UTF-8',false); 产量-白天和晚上 生成的xml正确地抱怨了无效的实体&Night 我不知道为什么它没有被编码 谢

我使用的是PHP5.3.3

我正在创建一个XML文件,但是htmlspecialchars函数有问题

这是正确的

htmlspecialchars('Day & Night;',ENT_COMPAT,'UTF-8',false);
产量-日及;夜

然而,这是行不通的

htmlspecialchars('Day &Night;',ENT_COMPAT,'UTF-8',false);
产量-白天和晚上

生成的xml正确地抱怨了无效的实体&Night

我不知道为什么它没有被编码


谢谢您的帮助。

尝试使用ENT\u XML1而不是ENT\u COMPAT。您是否尝试过将布尔值更改为true?也许PHP正在思考&夜晚;已转换,正在跳过它。从php.net关闭double_encode时,php不会对现有html实体进行编码,默认情况下是转换所有内容。看起来htmlspecialchars认为那天晚上有可能;是一个有效的实体。只是一个初步问题:您的xml文档实际上是一个HTML文档,或者为什么要使用HTML*函数-@CodeCaster-它在5.3.3版上不可用。@tom hart它可以工作,但它将对已编码的字符进行双重编码。XML会再次抱怨: