私の考えではまったく同じであるはずの2つのUnicode文字を比較することはできません。どういうわけかエンコードが違うのではないかと思いますが、同じエンコードに変更する方法がわかりません。
比較したい文字は、ミャンマーのUnicodeブロックのものです。私はphp5でwordpressを実行していて、ミャンマーのUnicodeを処理するカスタムプラグインを作成しようとしています。私のファイルはすべてUTF-8でエンコードされていますが、wordpressが何をするのかわかりません。
これが私がしていることです:
function myFunction( $inputText ) {
$outputText = '';
$inputTextArray = str_split($inputText);
foreach($inputTextArray as $char) {
if ($char == "က") // U+1000, a character from the Myanmar Unicode block
$outputText .= $char;
}
return $outputText;
}
add_filter( 'the_content', 'myFunction');
作業のこの段階では、関数はコンテンツに表示されている場所にのみကを返すことになっています。ただし、投稿コンテンツにကが明確に含まれている場合でも、空の文字列以外は返されません。文字をラテン文字に変更すると、関数は期待どおりに機能します。
したがって、私の質問は、これらの文字(またはのいずれ$char
か"က"
)をエンコードし$char
て、この文字が含まれている場合にそれらが等しく比較されるようにするにはどうすればよいかということです。