Doubt about PHP array

1

I am having a question about separating a content from a text file and separating it with array .

For example, I have the following texts:

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>

They start with TEXTO1(2, ...) and end with /body .

Can you separate them into arrays different? If possible, how do you separate and cause it to create arrays ?

<?PHP

Array1 = "vai estar o texto01";
Array2 = "vai estar o texto02";
....
?>
    
asked by anonymous 17.10.2016 / 21:13

1 answer

1

One option is to use the preg_match_all function in conjunction with the expression% |texto\d+(.+?)<\/body>|is to get content that is between texto followed by a number and </body> , the i modifier is not to differentiate lowercase and uppercase, and s is to indicate that . can also capture new line.

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

Where the variable conteudo contains the texts you want to separate.

If you want to access the first text for example, use textos[0] , second textos[1] , and so on.

To access the text indicating the key, such as Kenny Rafael suggested , you can do this:

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";
}

See DEMO

    
17.10.2016 / 22:30