olvidate de explode
necesitas preg_match_all()
con eso sacas lo que quieres usando expreciones regulares
Código PHP:
<?php
$Texto="<h1>Energía solar termica</h1>
<p>La energía solar térmica (o energía termosolar) consiste en el aprovechamiento de la energía del Sol para producir calor que puede aprovecharse para cocinar alimentos o para la producción de agua caliente destinada.....</p>
<h2>Energía solar térmica de baja temperatura</h2>
<p>Una instalación solar térmica de baja temperatura está formada por captadores solares, un circuito primario y secundario, intercambiador de calor....</p>
<h2>Energía solar térmica de media temperatura</h2>
<p>Las instalaciones de temperatura media pueden usar varias diseños, los diseños más comunes son: glicol a presión, drenaje trasero, sistemas de lote y sistemas....</p>
<h1>Energía solar fotovoltaica</h1>
<p>La energía solar fotovoltaica consiste en la obtención de electricidad24 obtenida directamente a partir de la radiación solar mediante....</p>
<h2>Paneles solares fotovoltaicos</h2>
<p>Un panel fotovoltaico consiste en una asociación de células, encapsulada en dos capas de EVA (etileno-vinilo-acetato), entre una lámina frontal de vidrio y una capa....</p>";
$expresion="/\<h1\>(.*)\<\/h1\>/"; // esto quire decir lo que este entre <h1> y </h1>
preg_match_all($expresion,$Texto,$considencias);
$Titulos=$considencias[1]; //esto se convierte en un array con las considencias
print_r($Titulos);
?>
Resultado: Array ( [0] => Energía solar termica [1] => Energía solar fotovoltaica )
respuesta resuelta con ayuda de
http://www.compileonline.com/execute_php_online.php