Как сравнить полноширинные символы Юникода с обычными?

У меня есть код, который выглядит так:

<?php
$str1 = 'xxxxxID';
$str2 = 'xxxxxID';

$bool = ($str1 == $str2);
var_dump( $bool);//==> need return true.
?>

Скажите, пожалуйста, как сравнить эти строки?

0

Решение

Вы ищете для транслитерации. Ты можешь использовать Iconv:

<?php
$str1 = 'xxxxxID';
$str2 = 'xxxxxID';

$str1Translit = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $str1);
$str2Translit = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $str2);

$bool = ($str1Translit == $str2Translit);
var_dump( $bool);//==> need return true.

Но вы должны знать, что это не работает для каждого символа Юникода и может показать некоторые странные результаты.

1

Другие решения

strlen(); Вернет количество байтов в строке. Однако ваш вопрос несколько неясен.

0

Используйте mb_convert_encoding (), чтобы привести обе строки к одной и той же многобайтовой кодировке (utf-8 или $ str2), затем вы можете сравнить их как обычно, используя ==

-1
По вопросам рекламы [email protected]