Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Разрезать строку по двум образцам - начала и конца


Автор: anor 8.6.2007, 22:31
Есть ли в php стандартная функция работающая по анлогии с функцией split, только режущаяя по двум образцам начала и конца?

К примеру строка:
"Многбуков образец1 много буков2 образец2 многобуков3 образец1 много буков4 образец2 многобуков5"

Функцией split ее можно забить в массив кусками: split(образец1, $строка);
в итоге будет массив из двух строк:
0 - много буков2 образец2 многобуков3 
1 - много буков4 образец2 многобуков5

А мне надо вычленить весь мусор использованием втрого образца, что бы функция выглядела как-то так: функция (образец1образец2, $строка);
И в результате резала начиня с образца1 и заканчивая образцом2, результат:
0 - много буков2
2 - много буков4

В принципе написать свою - три строчки кода. Но, мне кажется для таких вещей должна быть стандартная.

Автор: xolod 8.6.2007, 23:05
Настоящего предназначения split вы, видимо, не увидели. Она разбивает по регулярному выражению, а значит спокойно подходит для разбивания по альтернативам, хоть по двух, хоть по десяти. Для простого разбивания есть функция гораздо быстрее - explode.
Мало того, split медленный и в подавляющем большинстве случаев оправданным будет использование http://ru2.php.net/manual/ru/function.preg-split.php.

Решение вашей задачи с помощью preg_split:
Код

$result = preg_split('/(sample1|sample2)/', $source);

Автор: anor 9.6.2007, 04:58
Спасибоsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)