0

だから私は私のmysqlに持っています 'UAB "Litofcų kontora"'

このように入力に入れようとすると

<input type="text" value="UAB "Litofc&#371; kontora"">引用符だけがhtmlコードに置き換えられるようにする方法は引用符のため、全体が表示されませんか? htmlentities と htmlspecialchars を試しましたが、変換&#371;されますが、それが隠れないようにする必要があります。

4

2 に答える 2

0

入力値を出力する前に、 all"を(のみ) に置き換える必要があります。例str_replace :&quot;

$sInputValue = str_replace('"', '&quot;', $sValueFromDb);
echo '<input type="text" value="' . $sInputValue . '">';

この phpの例と結果の html の例も参照してください。

于 2012-07-23T08:01:24.103 に答える
0

問題は、データが HTML 用にエンコードされているが、テキスト ノードとしてのみ使用されていることです。

したがって、解決策は、HTML からテキストに変換してから HTML に戻すことですが、属性を入れるのに適した方法で行います。

preg_replace_callbackPHP マニュアルのこのコメントのコードは、html_entity_decode数値エンティティをサポートしていないように見えるためです。

$input = 'UAB "Litofc&#371; 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;
于 2012-07-23T08:17:59.947 に答える