既に存在するエンティティに影響を与えることなく、エンコードされていない文字のみを html エンティティに変換したい。以前にエンティティをエンコードした文字列があります。
gaIUSHIUGhj>‐ hjb×jkn.jhuh>hh> …
を使用するhtmlentities()
と、&
エンティティの先頭にある が再びエンコードされます。これは‐
、他のエンティティが次のように&
エンコードされていることを意味し&
ます。
×
完全な文字列をデコードしてから、もう一度エンコードしようとしましたが、正しく機能していないようです。これは私が試したコードです:
header('Content-Type: text/html; charset=iso-8859-1');
...
$b = 'gaIUSHIUGhj>‐ hjb×jkn.jhuh>hh> …';
$b = html_entity_decode($b, ENT_QUOTES, 'UTF-8');
$b = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $b);
$b = htmlentities($b, ENT_QUOTES, 'UTF-8');
しかし、それは正しい方法ではないようです。これを防止または停止する方法はありますか?