Encontré esta página http://www.rubular.com/ donde probar las expresiones regulares, su diseño y usabilidad me gustaron, tanto que me puse a diseñar una expresión regular hasta que conseguí que me cogiese todos los valores que quería.
La expresión regular
Código PHP:
Ver original
<(\w+)(?:.*?)class=[\'|"](\w+)[\'|"](?:.*?)>
Fragmento de codigo html probado
Código HTML:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="robots" content="noindex,nofollow"/> <link rel="stylesheet" href="/css/entrada_login.css" type="text/css" media="all" /> <!-- Favicon --> <link rel="shortcut icon" href="/imagenes/favicon.ico"/> </head> <body class="login"> <!-- Formulario Entrada --> <div id="login"> <form id="loginform" action="includes/login.php" method="post"> <p> </p> <p> </p> <p class="submit"> <input type="submit" name="wp-submit" id="wp-submit" value="Iniciar Sesión" tabindex="100" /> </p> </form> <p id="nav"> </p> </div> </body> </html>
En la web me muestra el resultado que quiero. Todas valores de los elementos CLASS y el tag HTML que le precede.
Código:
Sin embargo, cuando ejecuto esa misma expresión en una pagina php, el resultado es bien distinto. Result 1 1. body 2. login Result 2 1. p 2. enlace_top Result 3 1. input 2. input Result 4 1. input 2. input Result 5 1. p 2. forgetmenot Result 6 1. p 2. submit Result 7 1. a 2. footer
Código:
A pesar que los valores de los CLASS son correctos, los atributos HTML no coinciden con los mostrados haciendo la prueba en la web.<pre>Array ( [0] => Array ( [0] => <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> <head> <title>Área restringida | Panel de Administración</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="robots" content="noindex,nofollow"/> <link rel="stylesheet" href="/css/entrada_login.css" type="text/css" media="all" /> <!-- Favicon --> <link rel="shortcut icon" href="/imagenes/favicon.ico"/> </head> <body class="login"> [1] => <p id="borde-top"><a class="enlace_top" href="entrada_login.php" title="Panel de Administración"> [2] => <div id="login"> <h1 id="titulo" title="Panel de Administración"></h1> <form id="loginform" action="includes/login.php" method="post"> <p> <label>Nombre de usuario<br /> <input type="text" name="user" id="user_login" class="input" value="" size="20" tabindex="1" accesskey="1"/> [3] => <p> <label>Contraseña<br /> <input type="password" name="password" id="user_pass" class="input" value="" size="20" tabindex="2" accesskey="2" /> [4] => <p class="forgetmenot"> [5] => <label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> Recordarme</label></p> <p class="submit"> [6] => <input type="submit" name="wp-submit" id="wp-submit" value="Iniciar Sesión" tabindex="100" /> </p> </form> <p id="nav"> <a class="footer" href="#"> ) [1] => Array ( [0] => html [1] => p [2] => div [3] => p [4] => p [5] => label [6] => input ) [2] => Array ( [0] => login [1] => enlace_top [2] => input [3] => input [4] => forgetmenot [5] => submit [6] => footer ) ) </pre>
body
p
input
input
p
p
a
¿Sabéis porque puede ser?
Muchas gracias de antemano!