所以我有我的mysql
'UAB "Litofcų kontora"'
当我尝试把它放在这样的输入中
<input type="text" value="UAB "Litofcų kontora"">
它没有显示整个内容因为引号如何只用引号代替html代码?
尝试了htmlentities和htmlspecialchars,但它将ų
转换为但我需要这样才能成为它不会隐蔽的方式。
答案 0 :(得分:0)
在输出输入值之前,您(仅)将所有"
替换为"
。鸡蛋str_replace:
$sInputValue = str_replace('"', '"', $sValueFromDb);
echo '<input type="text" value="' . $sInputValue . '">';
答案 1 :(得分:0)
看起来您的问题是数据已针对HTML进行编码,但仅用作文本节点。
因此,解决方案是将其从HTML转换为文本,然后将其转换回HTML - 但是以适合放入属性的方式。
来自this comment in the PHP manual的 preg_replace_callback
代码,因为html_entity_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;