(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.
preg_split(), использующая Perl-совместимый синтаксис регулярных выражений, чаще всего работает быстрее split(). В случае, когда нет необходимости использовать регулярные выражения, эффективнее использовать explode(), которая не использует дополнительные ресурсы для разбора регулярного выражения.
Пользователям, которым необходимо эмулировать поведение @chars = split('', $str) из Perl, следует обратиться к примерам для preg_split() или str_split().