Как разделить текст/строку на отдельные символы примеры str_split + preg_split
Как разделить текст посимвольно в php!? Способы разбиения : str_split + preg_split. Нам потребовалось разбить строку на символы. Способы разбиения строки в символы. Давайте разберем несколько примеров и способов и несколько кодировок – они иногда играют неприятную роль в разбитии строки на элементы.
Данная тема может рассматриваться как две темы, разбить текст посимвольно, т.е. один знак - один символ, либо разбить текст по символу, по какому-то по определенному символу, который заранее определен... вам -> сюдаВсе способы разбить текст на символы примеры
- Разбить текст с помощью str_split
- Разбить текст на кириллице с помощью str_split ->
utf - 8 - Разбить текст с помощью preg_split /li>
- Разбить текст на кириллице с помощью preg_split ->
utf - 8 - Скачать
Разбить текст с помощью str_split
Как просто разбить текст на символы!?
Например буква R латинского алфавита в кодировке покажет через var_dump("R"):
string(1) "R"
Как разбить английский текст в массив с помощью str_split
Для того, чтобы показать работу функции str_split с текстом на английском языке, нам понадобится какая-то переменная с английский текстом внутри:
Применим функцию str_split с английскому тексту:
Результат разделения английского текста на символы
Как видим, наш текст на английском языке прекрасно разбился на символы и выводится как массив через print_r
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => w
[7] => o
[8] => r
[9] => l
[10] => d
)
Если у вас windows-1251, то и для кириллицы этот способ вполне рабочий!
Разбить текст на кириллице с помощью str_split -> utf - 8
Как разбить/разделить текст на кириллице с помощью str_split, нам нужно проверить таким же образом, какой результаты будет выводить var_dump
Например буква P русского алфавита в кодировке UTF-8 покажет через var_dump({P}):
string(2) "Р"
Как вы поняли...str_split для кириллицы в UTF-8 по умолчанию не подойдет! Нам нужно... преобразовать строку из UTF-8 в windows-125 :
Если мы выведем здесь вот такой вариант разделения текста на символы:
$text="Это просто текст";
print_r(iconv("UTF-8", "windows-1251", $text));
То получим:
Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
[10] =>
[11] =>
[12] =>
[13] =>
[14] =>
[15] =>
)
Как можно такой результат понять!? Вот так будет отображаться текст, кодировку которого не переваривает кодировка страницы... Мы немного писали о кодировке -> здесь
Нам нужно каждую букву обратно перекодировать в UTF-8, это можно сделать в цикле:
$text="Это просто текст";
$str = iconv("UTF-8", "windows-1251", $text);
foreach (str_split($str) as $vars=> $value)
{
$переменная .= iconv("windows-1251","UTF-8", $value)."<br>\n";
}
echo $переменная;
Результат:
Э
т
о
п
р
о
с
т
о
т
е
к
с
т
Разбить текст с помощью preg_split
Еще один вариант разбиения строки посимвольно, который я теперь использую:
preg_split - Разбивает строку по регулярному выражению
Описание:
pattern - отсутствует, поэтому "//"
u - используется кодировка UTF-8
Специальное значение limit, равное -1, подразумевает отсутствие ограничения
PREG_SPLIT_NO_EMPTY - если этот флаг указан, функция preg_split() вернет только непустые подстроки.
Возвращает массив символов.
Как разбить английский текст на символы с помощью preg_split
С теория разобрались, теперь пришло время примеров! У нас есть текст на английском языке, пропустим его через функцию preg_split и посмотрим, что получится:
$text5 ="Hello world";
print_r(preg_split("//u", $text5 , -1, PREG_SPLIT_NO_EMPTY) ) ;
Пример разделения строки на английском языке на символы
Как видим на нашем примере, текст/строка на английском языке прекрасно разбита на символы с помощью preg_split
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => w
[7] => o
[8] => r
[9] => l
[10] => d
)
Разбить текст на кириллице с помощью preg_split -> utf - 8
Все тоже самое проделаем с текстом на кирилице! Опять возьмем функцию preg_split и пропустим через неё уже текст на русском языке:
$text="Это просто текст";
print_r(preg_split("//u", $text , -1, PREG_SPLIT_NO_EMPTY) ) ;
Пример разделения строки на русском языке на символы
В данном примере мы видим, что строка - текст прекрасно были разобраны на символы:
Array
(
[0] => Э
[1] => т
[2] => о
[3] =>
[4] => п
[5] => р
[6] => о
[7] => с
[8] => т
[9] => о
[10] =>
[11] => т
[12] => е
[13] => к
[14] => с
[15] => т
)
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: