Я пытаюсь выполнить итерацию по строке, содержащей французские символы. У меня есть набор конкретных французских символов, которые я ищу, которые я хочу сопоставить.Итерация через строку с французскими символами и соответствие
Пример:
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:
Я заметил, что символы не отображаются правильно в "Проверка:"
Похоже есть что-то просто, что меня здесь нет, любая помощь приветствуется!
Вы можете найти [эту записку о документации PHP mb_substr] (http://php.net/manual/en/function.mb-substr.php#117764) полезно. По сути, цикл таким образом, используя mb_substr, довольно медленный. Я также предполагаю, что ваша проблема связана с 'utf8_encode'; т. е. ваша исходная строка уже является UTF-8. –