mirsite

      главная страница     письмо     Добавить в избранное

    PHP // MySQL // .htaccess


   Об авторе >>>



Главная страница

PHP

     Статьи

     Функции

       Строки

       Массивы

       Файлы и файловая система

       Работа с сетью

       Дата и время

       Специальные

       Регулярные выражения (POSIX)

     Книги

MySQL

Apache и .htaccess

Полезные сервисы

Новости

Ссылки

Карта сайта



Регулярные выражения (POSIX)



Split

PHP 3, PHP 4, PHP 5

Функция split создает массив из строки с помощью регулярного выражения.

Синтаксис: array split (string pattern, string string [, int limit])

Функция split() использует стиль регулярных выражений POSIX, есть еще функция preg_split(), использующая Perl-совместимый синтаксис регулярных выражений, она часто работает быстрее чем split().

Split возвращает массив строк, полученных путём разделения строки string по границам, образованным патэрном pattern регулярного выражения. Если установлен параметр limit, то возвращённый массив будет содержать максимум limit элементов с последним элементом, содержащим остаток строки string. Если лимит не установлен, то функция делит строку по всем вхождениям разделителя pattern - то есть на n вхождений pattern, возвращённый массив будет содержать n+1 элементов. А если вхождений pattern нет, будет возвращён массив из одного элемента. В случае ошибки, split() возвращает FALSE.

Пример самого простого использования split:

<?php
$arr
=array();
$string="vasya@pupkin.com";
$arr split ("@"$string);
?>


Однако, так использовать split не рационально. Функции, использующие регулярные выражения всегда медленнее и более затратны по степени нагрузки на сервер. Так что если вам нужно просто разделить строку по одному четко известному параметру, лучше использовать функцию explode().

А split() очень полезна в том случае, если вы не знаете точно, что в каждой конкретной строке должно быть разделителем.

<?php
$date 
"04/12/1980";
// а можно например $date = "04/12-1980"; или $date = "04.12/1980";
// разграничителями могут быть слэш, точка или дефис
list ($day$month$year) = split ('[/.-]'$date);
echo 
"День: $day; Месяц: $month; Год: $year 
"
;
// Выведет День: 04; Месяц: 12; Год: 1980
?>


Такая конструкция разделит строку как по точке, так и по слэшу и дэфису.

Заметьте, что для функции split() pattern чувствителен к регистру. Если вам нужно, чтобы к регистру он был нечувствителен, используйте функцию spliti().

Кроме того, есть аналогичная функция preg_split() для тех, кто предпочитает использовать Perl-совместимый синтаксис регулярных выражений.



Все функции раздела >>>




  

Александр Мироненко, MirSite.ru © 2005-2014       
Сайт обновлен 21 сентябр¤ 2019 года