エンティティを削除して、マルチバイト文字セットを使用してください。
$string = html_entity_decode($string, ENT_COMPAT, 'UTF-8');
$string = mb_convert_case($string, MB_CASE_UPPER, 'UTF-8');
次に、文字列を出力します。ほとんどのhtmlエンティティは必要ありません。ネイティブ文字を使用し、ドキュメントの出力を適切に設定するだけです。
あなたが本当にエンティティを使用する必要がある場合は、正規表現を順に次のとおりです。私は正規表現をテストしていませんが、それは、それはすぐに続いされていない文字を探しているので、動作するはず
$callback = function($match) {
return strtoupper($match[1]);
}
$regex = '/(\w+(?=&)|(?<=;)\w+)/';
$string = preg_replace_callback($regex, $callback, $string);
注意あなたは結果
$var=<i>This</i><u>is</u><b>test</b><br>New line
Fたいしまいますより;
文字...
はあなたに感謝します!私はそれを考えていたはずです! – laukok
唯一の欠点は、タイトルタグの同じ問題を解決するのに役立たないということです。 –