Я думаю, что ваша проблема в том, что вы пытаетесь разделить что-то с тремя частями на две части. Если вы уроните третий аргумент в preg_split
, вы получите массив с тремя элементами. Первая часть этого (когда разделена ---
):
---
title = A nice title goes here
tags = tag1 tag2 tag3
---
This is the content of this entry...
Line2
Line3
Пусто, второе - это YAML, а третье - это содержимое. Попробуйте это:
$parts = preg_split('/[\n]*[-]{3}[\n]/', $source, 3);
И живой тестовый кейс: http://ideone.com/LYLxZ
Если вы хотите соответствовать тому, что, по-видимому, делает Phrozn, то ваш ввод будет выглядеть следующим образом:
title = A nice title goes here
tags = tag1 tag2 tag3
---
This is the content of this entry...
Line2
Line3
И ваш PHP будет таким:
$parts = preg_split('/[\n]*[-]{3}[\n]/', $source, 2);
И тестовый пример для этой версии: http://ideone.com/a9a6C