mb_str_split
Функция вернёт массив строк, это версия str_split() с поддержкой кодировок переменного размера символов, а также кодировок фиксированного размера из 1, 2 или 4-байтовых символов. Если указан параметр length , строка разбивается на куски указанной длины в символах (не байтах). Может быть указан необязательный параметр encoding , это хорошая практика.
Список параметров
Строка ( string ) для разделения на символы или куски.
Если указано, каждый элемент возвращаемого массива будет состоять из нескольких символов вместо одного символа.
Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null , вместо него будет использовано значение внутренней кодировки.
Строка, указывающая одну из поддерживаемых кодировок.
Возвращаемые значения
mb_str_split() возвращает массив строк.
Список изменений
| Версия | Описание |
|---|---|
| 8.0.0 | Теперь параметр encoding может принимать значение null . |
| 8.0.0 | Функция больше не возвращает false в случае неудачи. |
Смотрите также
- str_split() — Преобразует строку в массив
User Contributed Notes 3 notes
1 year ago
if( !function_exists(‘mb_str_split’)) <
function mb_str_split( $string = », $length = 1 , $encoding = null ) <
if(!empty($string)) <
$split = array();
$mb_strlen = mb_strlen($string,$encoding);
for($pi = 0; $pi < $mb_strlen; $pi += $length)<
$substr = mb_substr($string, $pi,$length,$encoding);
if( !empty($substr)) <
$split[] = $substr;
>
>
>
return $split;
>
>
3 years ago
Note: function return NULL if can’t convert argument type.
if (! in_array ( $encoding , mb_list_encodings (), true )) static $aliases ;
if ( $aliases === null ) $aliases = [];
foreach ( mb_list_encodings () as $encoding ) $encoding_aliases = mb_encoding_aliases ( $encoding );
if ( $encoding_aliases ) foreach ( $encoding_aliases as $alias ) $aliases [] = $alias ;
>
>
>
>
if (! in_array ( $encoding , $aliases , true )) trigger_error ( ‘mb_str_split(): Unknown encoding «‘ . $encoding . ‘»‘ , E_USER_WARNING );
return null ;
>
>
$result = [];
$length = mb_strlen ( $string , $encoding );
for ( $i = 0 ; $i < $length ; $i += $split_length ) $result [] = mb_substr ( $string , $i , $split_length , $encoding );
>
return $result ;
>
?>
3 years ago
Lazy polyfill for UTF-8 only:
function utf8_str_split(string $input, int $splitLength = 1)
$re = \sprintf(‘/\\G.+/us’, $splitLength);
\preg_match_all($re, $input, $m);
return $m[0];
>
- Функции для работы с многобайтовыми строками
- mb_check_encoding
- mb_chr
- mb_convert_case
- mb_convert_encoding
- mb_convert_kana
- mb_convert_variables
- mb_decode_mimeheader
- mb_decode_numericentity
- mb_detect_encoding
- mb_detect_order
- mb_encode_mimeheader
- mb_encode_numericentity
- mb_encoding_aliases
- mb_ereg_match
- mb_ereg_replace_callback
- mb_ereg_replace
- mb_ereg_search_getpos
- mb_ereg_search_getregs
- mb_ereg_search_init
- mb_ereg_search_pos
- mb_ereg_search_regs
- mb_ereg_search_setpos
- mb_ereg_search
- mb_ereg
- mb_eregi_replace
- mb_eregi
- mb_get_info
- mb_http_input
- mb_http_output
- mb_internal_encoding
- mb_language
- mb_list_encodings
- mb_ord
- mb_output_handler
- mb_parse_str
- mb_preferred_mime_name
- mb_regex_encoding
- mb_regex_set_options
- mb_scrub
- mb_send_mail
- mb_split
- mb_str_pad
- mb_str_split
- mb_strcut
- mb_strimwidth
- mb_stripos
- mb_stristr
- mb_strlen
- mb_strpos
- mb_strrchr
- mb_strrichr
- mb_strripos
- mb_strrpos
- mb_strstr
- mb_strtolower
- mb_strtoupper
- mb_strwidth
- mb_substitute_character
- mb_substr_count
- mb_substr
- Copyright © 2001-2023 The PHP Group
- My PHP.net
- Contact
- Other PHP.net sites
- Privacy policy
Cтроку в массив по разделителю в PHP: explode, str_split, strtok — что выбрать?
Для того, чтобы преобразовать строку в массив по разделителю, можно использовать функцию explode()
Необходимые параметры: разделитель и строка.Простой пример кода из документации:
// Пример 1 $pizza = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // кусок1 echo $pieces[1]; // кусок2 // Пример 2 $data = "foo:*:1023:1000::/home/foo:/bin/sh"; list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); echo $user; // foo echo $pass; // *2. preg_split: разбить строку на массив по регулярному выражению
Если возможностей explode() недостаточно, то можно использовать более мощную функцию: preg_split(). Она позволяет разбить строку не по фиксированному набору символов, а по регулярному выражению.
Пример из документации:
// разбиваем строку по произвольному числу запятых и пробельных символов, // которые включают в себя " ", \r, \t, \n и \f $keywords = preg_split("/[\s,]+/", "hypertext language, programming"); print_r($keywords);/* Array ( [0] => hypertext [1] => language [2] => programming ) */
Преобразовать строку в массив по количеству символов
Функция str_split() преобразует строку в массив, разбивая ее на элементы с заданным количеством символов. Хотите узнать как ее использовать? Посмотрите документацию.
$str = "Hello Friend"; $arr2 = str_split($str, 3); print_r($arr2)
Array ( [0] => Hel [1] => lo [2] => Fri [3] => end )
Функция strtok(): разбиение строки на токены
Есть еще функция strtok() . Она позволит задать набор из нескольких символов-разделителей, для разделения строки по словам: читать подробнее про strok.
Свежие записи
- SQL UPDATE: примеры обновления строк в таблице
- PHP: substr и мощные альтернативы, чтобы вырезать часть строки
- Степень в C, C++ и С#: как возвести число в любую степень, побитовые операции
- Скачать ShowKeyPlus: ссылка на последнюю официальную версию, скачивание, установка
- Как создать файл в Linux: 12 способов
- SQL INSERT INTO: примеры вставки строк в таблицу БД MySQL
- PHP: str_replace — замена или удаление подстроки в строке
- Функция date() в php: распространенные форматы, примеры, советы
- cURL в PHP: примеры POST, GET запросов с headers, cookie, JSON и многопоточностью
- JSON в PHP: примеры json_encode, json_decode, работа с кириллицей и utf-8
- Файл gitignore — примеры и документация
- Сортировка массивов в php: ksort, asort и прочие sort’ы
- jQuery onclick: как выполнить код при клике на кнопку
- 500 Internal Server Error — в чем причина?
- SMTP от Yandex: как отправить письма из PHP — пример настроек
- No such file or directory — в чем причина?
- Как получить первый элемент массива в php
- Cтроку в массив по разделителю в PHP: explode, str_split, strtok — что выбрать?
- 301 редирект на https с www через htaccess
- Как в php добавить к массиву другой массив?
- 301 редирект на https без www с помощью htaccess
- Регулярные выражения в PHP
- PHP json_decode — как декодировать результат в массив?
- Yii2 ActiveRecord шпаргалка по составлению запросов
- Поиск подстроки в строке с помощью PHP
- Отправка почты на php
- Как подключить php код в html
- Конвертировать массив в строку при помощи PHP
- Подключение одного php файла в другой
- Подборка ссылок для веб-разработчика
- Проблема с кириллицей в PHPWord
PHP разложить текст на слова
Добрый день! Подскажите, как разложить текст на слова, желательно в массив, мне вообще нужно будет перебирать их через циклы, например: слово1 слово2 слово3, слово4. Можно ли и если можно то как перебирать их в циклах, а вообще можно ли их запаковать в массив, например такой: «0» => «слово1» «1» => «слово2» «2» => «слово3» «3» => «слово4»
Отслеживать
задан 24 авг 2013 в 16:25
platinumsemen platinumsemen
345 4 4 золотых знака 7 7 серебряных знаков 18 18 бронзовых знаковМожно, делается просто, учебник по пхп, прочитать от корки до корки>профит, мы умеем разбивать строки на слова(хоть в массив хоть в никуда). если совсем лень читать учебник то explode, split — можно погуглить.
24 авг 2013 в 17:02
автор, ты просишь делать за тебя ЭЛЕМЕНТАРНЫЕ вещи. почитай учебник Котерова по ПХП прежде чем задавать такие простейшие вопросы.
24 авг 2013 в 18:17
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
$text = 'слово1 слово2 слово3 слово4'; $text_explode = explode(' ', $text); print_r($text_explode);Результат:
Array ( [0] => слово1 [1] => слово2 [2] => слово3 [3] => слово4 )Отслеживать
ответ дан 24 авг 2013 в 17:46
3,676 8 8 золотых знаков 53 53 серебряных знака 137 137 бронзовых знаков$str = 'Hello, world! Вот так'; $words = str_word_count($str, 2); var_dump($words); // array(2) < // [0]=>// string(5) "Hello" // [1]=> // string(5) "world" // >Работает только с латинскими символвами, хотя можно указать доп.символы, которые будут считаться словами и получится что-то вроде этого:
$words = str_word_count($str, 2, 'Вотак'); // array(4) < // [0]=>// string(5) "Hello" // [1]=> // string(5) "world" // [2]=> // string(6) "Вот" // [3]=> // string(6) "так" // >Но в таком случае уже лучше explode() , которого, в свою очередь, тоже может быть недостаточно и придется делать preg_split()
PHP. Разбить строку на слова
Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Разбить строку на слова можно с помощью функции strtok.
Данная функция принимает 2 параметра.
Первый параметр это обрабатываемая строка.
Второй параметр — строка содержащая символы по которым строка будет разделена на слова.Строка входящая в первый параметр:
$string = "Текст\tдля\nпроверки strtok";Массив полученных слов из строки:
$array_words = array();Символами разделителя будут выступать: пробел, табуляция и перенос строки:
$separator = " \t\n";Выполняем разделение и записываем значение в переменную $tok:
$tok = strtok($string, $separator);В переменную $tok будет записано лишь первое слово. Получение массива вех строк будет описано далее.
Считается, что исходная строка передается при первом вызове функции.
В последующих вызовах передаются лишь символы разделители, так как эта функция запоминает переданную строку и запоминает позиции в этой строке.$tok = strtok(" \t\n");Для работы с новой строкой необходимо снова вызывать функцию с двумя параметрами.
Получаем массив со словами определенными в строке:
while($tok) { $array_words[] = $tok; $tok = strtok(" \t\n"); >var_dump($array_words);Значение результата полученного на экране:
array(5) < [0]=>string(5) «Текст» [1]=> string(3) «для» [2]=> string(8) «проверки» [3]=> string(7) «функции» [4]=> string(6) «strtok» >
Исходный код примера:
var_dump($array_words);
