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
split
Разбивает строку string на массив по регулярному выражению.
Внимание
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
Список параметров
Регулярное выражение, чувствительное к регистру.
Если необходимо разбить строку по символам, являющимся специальными для регулярных выражений, их следует экранировать. Если вам кажется, что split() (или любая другая функция, работающая с регулярными выражениями) ведет себя неожиданно, пожалуйста, прочтите файл regex.7 , расположенный в поддиректории regex/ дистрибутива PHP. Он сохранен в формате manpage, поэтому для удобства чтения используйте команду man /usr/local/src/regex/regex.7.
Если указан параметр limit , возвращаемый массив будет содержать максимум limit элементов, причем последний элемент будет включать всю оставшуюся часть строки string .
Возвращаемые значения
Возвращает массив строк, каждая из которых является строкой, образованной разбиением строки string чувствительным к регистру регулярным выражением pattern .
Если pattern встречается n раз, результирующий массив будет содержать n +1 элементов. Например, если pattern в строке отсутствует, будет возвращен массив, содержащий 1 элемент. Само собой, это также верно в случае, когда string является пустой строкой. В случае ошибки split() возвращает FALSE .
Примеры
Пример #1 Пример использования split()
Получаем первые четыре поля строки из /etc/passwd :
list( $user , $pass , $uid , $gid , $extra ) =
split ( «:» , $passwd_line , 5 );
?>?php
Пример #2 Пример использования split()
Распознаем дату, отформатированную с использованием слешей, точек или дефисов:
// Разделителями могут быть слеши, точки или дефисы
$date = «04/30/1973» ;
list( $month , $day , $year ) = split ( ‘[/.-]’ , $date );
echo «Месяц: $month ; День: $day ; Год: $year
\n» ;
?>?php
Примечания
Замечание:
С версии PHP 5.3.0, расширение regex помечено устаревшим и заменено расширением PCRE. Вызов этой функции приведет к ошибке уровня E_DEPRECATED . Смотрите список отличий для помощи при конвертировании в PCRE.
Подсказка
Функция split() является устаревшей начиная с PHP 5.3.0. Предлагается использовать вместо неё функцию preg_split() . В случае, когда нет необходимости использовать регулярные выражения, эффективнее использовать explode() , которая не использует дополнительные ресурсы для разбора регулярного выражения.
Подсказка
Пользователям, которым необходимо эмулировать поведение @chars = split(», $str) из Perl, следует обратиться к примерам для preg_split() или str_split() .
Смотрите также
- preg_split() — Разбивает строку по регулярному выражению
- spliti() — Разбивает строку в массив с помощью регулярного выражения без учета регистра
- str_split() — Преобразует строку в массив
- explode() — Разбивает строку с помощью разделителя
- implode() — Объединяет элементы массива в строку
- chunk_split() — Разбивает строку на фрагменты
- wordwrap() — Переносит строку по указанному количеству символов
Как разбить на array каждую строку из textarea. PHP
Имеем форму с полем ввода textarea и кнопочкой отправить (Submit). Отправляем это все методом пост (POST). Дальше обрабатываем эту форму с помощью PHP. Задача в переменной которая приходит от textarea каждую строку преобразовать в ячейку массива. Итак приступим.
В итоге имеем массив данный где каждая строка из textarea является ячейкой массива.
Если вы знаете более лаконичный способ пишите в комментариях.
Читайте также:
- Спецсимволы для использования в HTML коде
- Как привязать футер к низу страницы
- Настройка PhpStorm pug (jade) и less Watchers
- Как поместить кусок html кода в переменную php
- Как разбить на array каждую строку из textarea. PHP
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
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);
