split - Разбиение строки на массив по регулярному выражению
Вернуться к: Функции регулярных выражений POSIX
split
(PHP 4, PHP 5)
split — Разбиение строки на массив по регулярному выражению
Описание
$pattern
, string $string
[, int $limit
= -1
] )
Разбивает строку string
на массив по регулярному выражению.
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
Список параметров
-
pattern
-
Регулярное выражение, чувствительное к регистру.
Если необходимо разбить строку по символам, являющимся специальными для регулярных выражений, их следует экранировать. Если вам кажется, что split() (или любая другая функция, работающая с регулярными выражениями) ведет себя неожиданно, пожалуйста, прочтите файл regex.7, расположенный в поддиректории regex/ дистрибутива PHP. Он сохранен в формате manpage, поэтому для удобства чтения используйте команду man /usr/local/src/regex/regex.7.
-
string
-
Входная строка.
-
limit
-
Если указан параметр
limit
, возвращаемый массив будет содержать максимумlimit
элементов, причем последний элемент будет включать всю оставшуюся часть строкиstring
.
Возвращаемые значения
Возвращает массив строк, каждая из которых является строкой,
образованной разбиением строки string
чувствительным к регистру регулярным выражением pattern
.
Если pattern
встречается n раз,
результирующий массив будет содержать n+1 элементов.
Например, если pattern
в строке отсутствует, будет возвращен массив,
содержащий 1 элемент. Само собой, это также верно в случае, когда string
является пустой строкой.
В случае ошибки split() возвращает FALSE
.
Примеры
Пример #1 Пример использования split()
Получаем первые четыре поля строки из /etc/passwd:
<?php
list($user, $pass, $uid, $gid, $extra) =
split(":", $passwd_line, 5);
?>
Пример #2 Пример использования split()
Распознаем дату, отформатированную с использованием слешей, точек или дефисов:
<?php
// Разделителями могут быть слеши, точки или дефисы
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Месяц: $month; День: $day; Год: $year<br />\n";
?>
Примечания
Замечание:
С версии 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() - Переносит строку по указанному количеству символов
Вернуться к: Функции регулярных выражений POSIX