Перебор строки с французскими символами и сопоставление

Я пытаюсь перебрать строку, содержащую французские символы. У меня есть массив специфических французских символов, которые я ищу, и которым я хочу соответствовать.

Пример:

header("Content-Type: text/html;charset=utf-8");
$string = "HÂPPY Ç" ;
echo $string;//displays correctly
echo "<br>";
$frenchArray = Array('Â','Ç');
for($i=0;$i<mb_strlen($string);$i++)
{
$t = utf8_encode(mb_substr($string,$i,1));
echo "Checking:" . $t . "<br>";
for($x=0;$x<count( $frenchArray);$x++)
{
if($t==$frenchArray[$x])
{
echo "Matched: " . $t . " to " . $frenchArray[$x]."<br>";
}
}
}

Что не дает мне совпадений:

Checking:H
Checking:Ã
Checking:
Checking:P
Checking:P
Checking:Y
Checking:
Checking:Ã
Checking:

Я заметил, что символы не отображаются правильно в «Проверка:»

Кажется, что-то простое, что я здесь упускаю, любая помощь приветствуется!

1

Решение

Похоже, я пропустил «, ‘UTF-8′» часть «mb_». Спасибо за ссылку на статью Люка.

Правильный код должен быть:

for($i=0;$i<mb_strlen($string,'UTF-8');$i++)
{
$t = mb_substr($string,$i,1,'UTF-8');
echo "Checking:" . $t. "<br>";
for($x=0;$x<count( $frenchArray);$x++)
{
if(preg_match('/'.$t.'/',$frenchArray[$x]))
{
echo "Matched: " . $t . " to " . $frenchArray[$x]."<br>";
}
}
}
0

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

Других решений пока нет …

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