我想将特殊字符转换为HTML实体,然后再转换回原始字符。
我使用了htmlentities()
,然后使用了html_entity_decode()
。它对我来说很好,但{
和}
没有回到原始字符,它们仍为{
和}
。
我现在能做什么?
我的代码如下:
$custom_header = htmlentities($custom_header);
$custom_header = html_entity_decode($custom_header);
答案 0 :(得分:2)
即使没有人可以复制您的问题,也可以通过简单的str_replace直接解决问题。
$input = '<p><script type="text/javascript"> $(document).ready(function() { $("#left_side_custom_image").click(function() { alert("HELLO"); }); }); </script></p> ';
$output = str_replace( array( '{', '}'), array( '{', '}'), $input);
Demo(点击右上角的“来源”链接)
编辑:我现在看到了问题。如果您的输入字符串是:
"{hello}"
拨打htmlentities
会将&
编码为&
,这会为您提供字符串
"&#123;hello}"
然后将&
解码回&
,输出:
"{hello}"
修复方法是再次通过html_entity_decode
发送字符串,这将正确解码您的实体。
$custom_header = "{hello}";
$custom_header = htmlentities($custom_header);
$custom_header = html_entity_decode($custom_header);
echo html_entity_decode( $custom_header); // Outputs {hello}