Сомнения в массив PHP


Я с вопросом, как разделить содержимое текстового файла и отделить array.

например, у меня есть следующие тексты:

TEXTO1
<head> <edic><Diário Gaúcho 12/05/2013</edic>
<autor>Denise Waskow, [email protected]</autor>
</head>
<body>
<subtítulo>Para celebrar</subtítulo>
<título>Mães e filhos se divertem em atividades culturais no Parque da Redenção</título>
Jogos de mesa, futebol, brinquedos infláveis, teatro, dança e uma série de outras brincadeiras movimentaram o domingo no parque
Criançada aproveitou o domingo nos brinquedos
Denise Waskow
[email protected]
Se existe algo que deixa toda mãe realizada é ver que o filho está feliz. E quem levou a prole neste domingo à Redenção ganhou esse presente para celebrar o Dia das Mães. 
Jogos de mesa, futebol, brinquedos infláveis, teatro, dança e uma série de outras brincadeiras movimentaram o domingo, em uma ação promovida pela Secretaria Municipal de Esporte, Recreação e Lazer da Capital. A gurizada aproveitou muito, e as mamães se emocionaram com a alegria deles.
<subtítulo>Diversão nos brinquedos</subtítulo>
Enquanto a pequena Amanda, três anos, criava coragem para descer no tobogã inflável, a mãe, a babá Roselaine Pereira, 30 anos, ficava na parte de baixo do brinquedo, incentivando a menina a descer, fotografando e se divertindo junto.  
- É maravilhoso, é ótimo. O melhor presente é isso, a felicidade deles - derrete-se.
O filho mais velho, Jhonattan, 13 anos, já não está mais na fase de brincar, mas nem por isso deixou de acompanhar a mãe. Enquanto a irmã caçula passava de um brinquedo para o outro, ele contou como homenageou Roselaine no início do domingo: 
- Eu disse que eu amo ela.
<subtítulo>Uma torcida especial</subtítulo>
"Vai Joana, vai Joana!". Ao lado do espaço demarcado para o futebol, a massoterapeuta Tânia Regina Horta, 46 anos, incentivava a filha caçula, de seis anos, no esporte. E apesar de a mãe ser gremista e a filha colorada, não existe rivalidade. O que conta nessa relação, claro, é o amor. 
- A mãe que está sendo homenageada e são os filhos que se divertem. Está ótimo, o melhor é curtir a companhia deles - elogia. 
Depois de uma manhã inteira de brincadeiras, o planejamento de Tânia era encontrar os dois filhos mais velhos, além dos dois enteados, para o tradicional almoço de Dia das Mães.
</body>

TEXTO2
<head> <edic><Diário Gaúcho 14/05/2013</edic>
<autor></autor>
</head>
<body>
<subtítulo>Colisão</subtítulo>
<título>Sargento dos Bombeiros morre em acidente na zona sul da Capital</título>
Itiberê Poty de Abreu perdeu o controle da moto após colidir com um carro
Trânsito ficou em meia pista na Avenida Wenceslau Escobar
Um motociclista morreu após colidir hoje com um carro na Avenida Wenceslau Escobar, na zona sul de Porto Alegre. Itiberê Poty de Abreu, 49 anos, era sargento do Corpo de Bombeiros.
A vítima subia a avenida quando colidiu com o carro da frente e perdeu o controle da moto. Um outro veículo que trafegava no sentido contrário não conseguiu desviar e também se envolveu no acidente. O motociclista morreu no local.
O trânsito ficou em meia pista na Avenida Wenceslau Escobar e seria liberado após a remoção da vítima.
</body>

Они начинаются с TEXTO1(2, ...) и заканчивая /body.

можно разделить они arrays разному? Если возможно, как отделить и сделать так, что он идти создавая arrays?

<?PHP

Array1 = "vai estar o texto01";
Array2 = "vai estar o texto02";
....
?>
 1
Author: stderr, 2016-10-17

1 answers

Вариант заключается в использовании функции preg_match_all в сочетании с выражением |texto\d+(.+?)<\/body>|is, чтобы получить содержимое, что находится между texto, за которым следует номер и </body>, модификатор i, чтобы не различать строчные и заглавные буквы, и s, чтобы указать, что . также может записывать с новой строки.

preg_match_all('|texto\d+(.+?)<\/body>|is', $conteudo, $resultado);
$textos = $resultado[1];

Где переменная conteudo содержит тексты, которые вы хотите разбить.

, Если вы хотите получить первый текст, например, с помощью textos[0], по textos[1] и так спереди.

, Чтобы получить текст, указывающий на ключ, как Кенни Рафаэль предположил, вы можете сделать так:

preg_match_all('|texto\d+(.+?)<\/body>|is', $conteudo, $resultado);
$textos = [];

foreach ($resultado[1] as $indice => $texto) {
    $textos["texto$indice"] = explode("\n", $texto);
}

foreach ($textos['texto1'] as $linha) { // Acessando as linhas do texto1
    echo $linha . "\n";
}

DEMO

 1
Author: stderr, 2017-04-13 12:59:34