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