我有两个PHP文件,当我从这些页面上的数据库中获取数据并使用print_r
显示它们时,两个页面都以不同的方式显示内容。
实际上我的内容中有一些HTML特殊字符,我在MySQL数据库中的字符串之前使用htmlspecialchars
进行了转义。
当我获取它们在page1.php上显示它时显示为
My ‘pop’ to display
但在page2.php上显示为
My ‘pop’ to display
我还想提一下page1.php是我的网页,我有print_r只是为了检查page2.php上的问题,其中page2.php是一个api页面,我使用echo json_encode写入数据但是检查问题我已将其替换为print_r
答案 0 :(得分:0)
For Display使用此代码。
$message = "My ‘pop’ to display";
echo htmlspecialchars($messge, ENT_QUOTES, 'UTF-8');
答案 1 :(得分:-1)
最后我得到了解决方案。因为我的数据库中的数据已经使用htmlspecialchars进行操作,甚至在删除htmlspecialchars之后我无法更正数据,我发现此解决方案将所有html编码的字符转换回原始
以下是执行此操作的简单代码
$input = "This is the ‘text’ I fetched";
$output = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $input);
echo $output;
Referance:http://www.codewithasp.net/2016/11/html-entity-decode-to-original-php.html
<强>已更新强>
另外,我们也可以使用html_entity_decode执行与tadman评论后发现的相同的内容。