Bueno, creo que es hora de dar la bienvenida a nuestras amigas, las "Expresiones Regulares"...
Código PHP:
<?
function buscando($buscado,$cadena){
$buscar[0]=strtoupper($buscado);
$buscar[1]=strtolower($buscado);
$buscar[2]=ucfirst($buscar[1]);
$patron="/(<[h|H]1[A-Za-z0-9 \"=]*>)(.*)(".$buscar[0]."|".$buscar[1]."|".$buscar[2].")(.*)(<\/[h|H]1>)/";
$busqueda=preg_match_all($patron,$cadena,$salida);
$resultado["cuantos"]=count($salida[0]);
foreach ($salida[0] as $valor){
$resultado["textos"][]=$valor;
}
return $resultado;
}
// AQUI TERMINA LA FUNCION, AHORA LA PROBAMOS
// PRIMERO CREAMOS UNAS VARIABLES PARA USARLAS EN LA FUNCION
$buscado="prueba";
$cadena= <<<HTML
<html>
<head>
<title>Pagina de Prueba</title>
</head>
<body>
<h1>Esta es una Prueba</h1>
<p>Aqui hay un parrafo intermedio</p>
<h1 class="encabezado">Esta prueba es mas compleja</h1>
<h1>Este no trae el texto buscado</h1>
<h1> Pero esta si dice "prueba"</h1>
</body>
</html>
HTML;
// AHORA LLAMAMOS A LA FUNCION
$prueba=buscando($buscado,$cadena);
// Ahora vamos a ver los resultados
echo "Cantidad de Coincidencias: ".$prueba["cuantos"]."<br>\n";
echo "Estas fueron las Coincidencias: <br>\n";
echo "<UL>\n";
foreach ($prueba["textos"] as $p){
echo "<LI>".htmlspecialchars($p)."</LI>\n";
}
?>
Pruebalo, creo que es lo que necesitas...
Saludos!