だから私は私のmysqlに持っています
'UAB "Litofcų kontora"'
このように入力に入れようとすると
<input type="text" value="UAB "Litofcų kontora"">
引用符だけがhtmlコードに置き換えられるようにする方法は引用符のため、全体が表示されませんか? htmlentities と htmlspecialchars を試しましたが、変換ų
されますが、それが隠れないようにする必要があります。
入力値を出力する前に、 all"
を(のみ) に置き換える必要があります。例str_replace :"
$sInputValue = str_replace('"', '"', $sValueFromDb);
echo '<input type="text" value="' . $sInputValue . '">';
この phpの例と結果の html の例も参照してください。
問題は、データが HTML 用にエンコードされているが、テキスト ノードとしてのみ使用されていることです。
したがって、解決策は、HTML からテキストに変換してから HTML に戻すことですが、属性を入れるのに適した方法で行います。
preg_replace_callback
PHP マニュアルのこのコメントのコードは、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;