Этот вопрос почти дублируется в Как преобразовать структурированные текстовые файлы в многомерный массив PHP, но я опубликовал его снова, так как не смог понять решения на основе регулярных выражений, которые были даны. Кажется, лучше попробовать и решить это, используя только PHP, чтобы я мог на самом деле учиться на нем (регулярное выражение слишком сложно понять на данном этапе).
Предположим, что следующий текстовый файл:
HD Alcoa Earnings Soar; Outlook Stays Upbeat
BY By James R. Hagerty and Matthew Day
PD 12 July 2011
LP
Alcoa Inc. profit more than doubled in the second quarter.
The giant aluminum producer managed to meet analysts' forecasts.
However, profits wereless than expected
TD
Licence this article via our website:
http://example.com
Я прочитал этот текстовый файл с PHP, нужен надежный способ поместить содержимое файла в массив, например:
array(
[HD] => Alcoa Earnings Soar; Outlook Stays Upbeat,
[BY] => By James R. Hagerty and Matthew Day,
[PD] => 12 July 2011,
[LP] => Alcoa Inc. profit...than expected,
[TD] => Licence this article via our website: http://example.com
)
Слова HD BY PD LP TD
являются ключами для идентификации нового раздела в файле. В массиве все новые строки могут быть удалены из значений. В идеале я мог бы сделать это без регулярных выражений. Я считаю, что взрыва на всех клавишах может быть одним из способов сделать это, но это будет очень грязно:
$fields = array('HD', 'BY', 'PD', 'LP', 'TD');
$parts = explode($text, "\nHD ");
$HD = $parts[0];
Есть ли у кого-нибудь более четкое представление о том, как перебирать текст, возможно, один раз, и делить его на массив, как указано выше?