Я пробовал несколько функций, чтобы извлечь что-либо между двумя строками. В разделителях могут быть специальные символы, я думаю, именно поэтому никто не работал для меня.Самый надежный способ извлечения строк между двумя разделителями
Моя текущая функция:
function between($str, $startTag, $endTag){
$delimiter = '#';
$regex = $delimiter . preg_quote($startTag, $delimiter)
. '(.*?)'
. preg_quote($endTag, $delimiter)
. $delimiter
. 's';
preg_match($regex, $str, $matches);
return $matches;
}
Пример строки:
#{[email protected]}#
Text i want
#{END}#
#{[email protected]}#
Second text i want
#{END}#
Как улучшить то или предложить другое решение:
- Поддержка любого рода характера или новых линий
- Извлечь несколько строк, если найдено
Текущее Поведение: возвращает только первый матч, а также возвращает матч плюс окружающие теги, который является нежелательным