Как preg_replace от идентификатора до конца текста с символами CR (LF)

Я пытаюсь разделить часть текста (на самом деле HTML) на две части, верхнюю и нижнюю часть. «Идентификатор» (<- # SPLIT # ->) в тексте отмечает позицию для разделения.

Чтобы получить верхнюю часть, у меня есть следующий preg_replace, который работает:

$upper = preg_replace('/<--#SPLIT#-->(\s*.*)*/', '', $text);

Это оставляет меня со всем текстом, который предшествует<- # SPLIT # ->».

Чтобы получить нижнюю часть, я придумал следующий preg_replace, который НЕ работает правильно:

$lower = preg_replace('/(\s*.*)*<--#SPLIT#-->/', '', $text);

Это возвращает пустую строку.

Как я могу исправить второй?

0

Решение

Лучше использовать:

explode('<--#SPLIT#-->', $text);

Пример кода:

$text = 'Foo bar<--#SPLIT#-->Baz fez';
$temp = explode('<--#SPLIT#-->', $text);
$upper = $temp[0];
$lower = (count($temp > 1) ? $temp[1] : '');

// $upper == 'Foo bar'
// $lower == 'Baz fez'
1

Другие решения

Других решений пока нет …