Buenas,
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"> <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"/> <p id="borde-top"><a class="enlace_top" href="entrada_login.php" title="Panel de Administración">ATENCIÓN: Área privada.
</a></p> <!-- Formulario Entrada -->
<h1 id="titulo" title="Panel de Administración"></h1>
<form id="loginform" action="includes/login.php" method="post"> <input type="text" name="user" id="user_login" class="input" value="" size="20" tabindex="1" accesskey="1"/></label> <input type="password" name="password" id="user_pass" class="input" value="" size="20" tabindex="2" accesskey="2" /></label> <p class="forgetmenot"><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> Recordarme
</label></p> <input type="submit" name="wp-submit" id="wp-submit" value="Iniciar Sesión" tabindex="100" /> <a class="footer" href="#">Área privada.
</a>
En la web me muestra el resultado que quiero. Todas valores de los elementos CLASS y el tag HTML que le precede.
Código:
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
Sin embargo, cuando ejecuto esa misma expresión en una pagina php, el resultado es bien distinto.
Código:
<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>
A pesar que los valores de los CLASS son correctos, los atributos HTML no coinciden con los mostrados haciendo la prueba en la web.
body
p
input
input
p
p
a
¿Sabéis porque puede ser?
Muchas gracias de antemano!