|
(PHP 3, PHP 4)
split - делает из строки массив с помощью регулярного выражения. Описание
array split (string pattern, string string [, int limit])
Примечание: preg_split(), использующая Perl-совместимый синтаксис регулярных выражений, работает часто
быстрее split().
Возвращает массив строк, каждая из которых является подстрокой строки
string и образована путём разделения строки по границам, образованным патэрном
pattern регулярного выражения. Если limit установлен, возвращённый массив будет содержать максимум
limit элементов с последним элементом, содержащим остаток строки string. Если
возникла ошибка, split() возвращает FALSE. Для того чтобы разделить первые четыре поля строчки
/etc/passwd: Пример 1. split()
list($user,$pass,$uid,$gid,$extra)= split (":", $passwd_line, 5);
|
|
Примечание: если имеются n вхождений патэрна
pattern, возвращённый массив будет содержать n+1 элементов. Например, если вхождений
pattern нет, будет возвращён массив из одного элемента. Конечно, это также верно и в
том случае, когда string пустая.
Для разбора данных, которые могут быть разграничены слэшами, точками или
дефисами: Пример 2. split()
$date = "04/30/1973"; // разграничителями могут быть slash, dot или hyphen
list ($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br>\n"; |
|
Заметьте, что pattern чувствителен к регистру. Если вам не нужна мощь регулярных выражений, быстрее
сработает explode(), которая не вызывает перегрузки машины регулярных выражений.
Для тех, кто ищет способ эмулировать Perl'овское поведение @chars = split('', $str), рекомендуем посмотреть примеры для
preg_split(). Обратите, пожалуйста, внимание, что pattern это регулярное выражение. Если вы хотите разделить на любом из символов,
имеющих в регулярных выражениях специальное значение, вам нужно сначала
мнемонизировать/escape эти символы. Если вам кажется, что split() (или любая другая regex-функция) делает нечто странное, прочтите файл
regex.7, включённый в поддиректорию regex/ дистрибутива
PHP. Он имеет формат manpage, поэтому вам понадобится что-нибудь сделать со строками man
/usr/local/src/regex/regex.7, чтобы прочесть его. См. также preg_split(),
spliti(), explode(),
implode(), chunk_split() и
wordwrap(). | |