Php仅将引号转换为html代码,而不转换为其他特殊字符
所以我的mysql中有Php仅将引号转换为html代码,而不转换为其他特殊字符,php,html,quotes,Php,Html,Quotes,所以我的mysql中有 'UAB“Litofcų;kontora” 当我试着像这样把它输入 由于引号的缘故,它不会显示全部内容。如何使只有引号的内容替换为html代码? 尝试了htmlspecialchars和htmlspecialchars,但它转换了ų到,但我需要它不隐蔽的方式。在输出输入值之前,您必须(仅)将所有“替换为”。例如: $sInputValue=str_replace(“,”,$sValueFromDb); 回声'; 另请参见和。您的问题似乎是数据已编码为HT
'UAB“Litofcų;kontora”
当我试着像这样把它输入
由于引号的缘故,它不会显示全部内容。如何使只有引号的内容替换为html代码?
尝试了htmlspecialchars和htmlspecialchars,但它转换了ų代码>到,但我需要它不隐蔽的方式。在输出输入值之前,您必须(仅)将所有“
替换为”
。例如:
$sInputValue=str_replace(“,”,$sValueFromDb);
回声';
另请参见和。您的问题似乎是数据已编码为HTML,但仅用作文本节点
因此,解决方案是将其从HTML转换为文本,然后再将其转换回HTML——但方式适合放入属性
preg\u replace\u callback
code from,因为html\u entity\u decode
似乎不支持数字实体
$input = 'UAB "Litofcų kontora"';
$attribute_safe = htmlspecialchars(
html_entity_decode(
preg_replace_callback(
"/(&#[0-9]+;)/",
function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); },
$input
)
)
);
echo $attribute_safe;
@佩卡:我从来没有说过(并分析过)htmlspecialchars()有问题(我说的是“例如”)。有几种方法可以解决这个问题。@user1487699:您看过我的示例并尝试过我的解决方案吗?@scissor-这就是为什么字符串首先从HTML解码为文本…除了它似乎工作不正常之外…它显示代码中的字母ų,只有我想正常看到它。WTF?根据文档页面中的注释,html_entity_decode仅对命名实体进行操作。每次我学习PHP的新知识,我都会更加讨厌它。
$input = 'UAB "Litofcų kontora"';
$attribute_safe = htmlspecialchars(
html_entity_decode(
preg_replace_callback(
"/(&#[0-9]+;)/",
function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); },
$input
)
)
);
echo $attribute_safe;