Pero en el ejemplo que me diste, segun lo que hice si salen todos. Trata el ejemplo que te di. Si tienes algun otro vamos modificandolo hasta que logre lo que quieres, pero ese ejemplo publica todos y ademas te trae la información como tu quieres.
Con este ejemplo
Código PHP:
Ver original<?php
$s = '<html>
<head>
<title>XHTML</title>
</head>
<body>
<div id="container">
<div id="c1"></div>
<div id="c2"></div>
<div id="c3"></div>
<div id="c4"></div>
<p class="neat">Lorem ipsum dolor sit amet... </p>
</div>
</body>
</html>';
$pattern = '/<([a-z0-9\-]+)([^>]*)>([^<]+)<\/+[a-z0-9\-]+>|<([a-z0-9\-]+)([^>]*)>/is';
Fijate en el resultado
Código codigo:
Ver originalArray
(
[0] => Array
(
[0] => <html>
[1] => <head>
[2] => <title>XHTML</title>
[3] => <body>
[4] => <div id="container">
[5] => <div id="c1">
[6] => <div id="c2">
[7] => <div id="c3">
[8] => <div id="c4">
[9] => <p class="neat">Lorem ipsum dolor sit amet... </p>
)
[1] => Array
(
[0] =>
[1] =>
[2] => title
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] => p
)
[2] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] => class="neat"
)
[3] => Array
(
[0] =>
[1] =>
[2] => XHTML
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] => Lorem ipsum dolor sit amet...
)
[4] => Array
(
[0] => html
[1] => head
[2] =>
[3] => body
[4] => div
[5] => div
[6] => div
[7] => div
[8] => div
[9] =>
)
[5] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] => id="container"
[5] => id="c1"
[6] => id="c2"
[7] => id="c3"
[8] => id="c4"
[9] =>
)
)
Te dice todos las etiquetas pero en dos partes una se encuentra en el
[1] => Array y la otra esta en el
[4] => Array
Tambien te dice los id y class pero en dos array uno se encuentra en el
[2] => Array y el otro esta en el
[5] => Array
Si los quieres unir puedes usar la funcion
array_merge()
Código PHP:
Ver original<?php
$s = '<html>
<head>
<title>XHTML</title>
</head>
<body>
<div id="container">
<div id="c1"></div>
<div id="c2"></div>
<div id="c3"></div>
<div id="c4"></div>
<p class="neat">Lorem ipsum dolor sit amet... </p>
</div>
</body>
</html>';
$pattern = '/<([a-z0-9\-]+)([^>]*)>([^<]+)<\/+[a-z0-9\-]+>|<([a-z0-9\-]+)([^>]*)>/is';