Обработка строки по одному символу

ПрограммированиеPHPРабота со строками в PHPОбработка строки по одному символу

Нужно обработать каждый символ строки по отдельности. Например, посчитать каждую гласную букву в строке и вывести их кол-во.
1 Окт. 2015 | 09:59:29
Erem18
Пользователь

Оценить

1

Положительные: 1
Отлицательные: 0

Комментариев: 2

коммент #25
1 Окт. 2015 | 10:03:24

Julia
PHP Программист
Выполняем цикл по символам строки с помощью оператора for. В этом примере подсчитываются гласные в строке:
$string = "This weekend, I'm going shopping for a pet chicken.";
$vowels = 0; # гласные
for ($i = 0, $j = strlen($string); $i < $j; $i++) {
    if (strstr('aeiouAEIOU', $string[$i])) {
        $vowels++;
    }
}
коммент #26
1 Окт. 2015 | 10:26:59

Coder
PHP Программист
@Julia, это подойдет для работа только с ASCII, но если с UTF-8 (русскими буквами и т.д.) то нам понадобиться другой подход.
Сперва нужно убедиться, что есть библиотека для работы с многобайтными строками (php_mbstring.dll).

<?php
mb_internal_encoding("UTF-8");
$text = "Привет мир я ПХП!";

for($n=0; $n<=mb_strlen($text); $n++) {
    # Вывод по одному символу из строки
    echo mb_substr($text, $n, 1)."<br>";
}

Если будут ошибки:
Call to undefined function mb_internal_encoding()
call to undefined function mb_strlen()
call to undefined function mb_substr()

Значит у вас не установлена библиотека php_mbstring.dll или не подключена в php.ini
Зайдите в файл php.ini (Обычно в C:\Windows\php.ini) и добавьте или уберите комментарий (#) от строки:
extension=php_mbstring.dll
Потом перезагрузите веб-сервер, чтобы изменения вошли в силу.