Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/01/2010, 13:41
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Parsear hoja de estilo con expresiones regulares

Intentando...

Todo lo que empiece por .login
Seguido por cualquier cosa
seguido de una llave abierta {
Cualquier cosa
Acabe con una llave }

Código PHP:
preg_match_all('/(\.login)(.*?)\{(.*?)}*$/is',$css,$matches); 
Resultado:

Código:
<pre>Array
(
    [0] => Array
        (
            [0] => .login #borde-top a:hover { color: #000; }

/* TITULO PRINCIPAL (LOGO)
------------------------------------------------- */
h1 {
	background: url(../imagenes/header/logo-acceso-panel.png) no-repeat;
	display: block;
	height: 40px;
	margin-left: 15px;
	overflow: hidden;
	padding-bottom: 15px;
	text-indent: -9999px;
	width: 320px; }

/* FORMULARIO
------------------------------------------------- */
form {
	-khtml-border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-radius: 5px;
	font-weight: bold;
	margin-left: 8px;
	padding: 16px 16px 40px 16px; }

	form p { margin-bottom: 24px; }

/* Tamaño del recuadro */
#login {
	margin: 7em auto;
	width: 350px; }

/* Tamaño de las casillas USER Y PASS */
#user_pass, #user_login {
	font-size: 20px;
	margin-right: 6px;
	padding: 3px;
	width: 97%; }

/* Color texto input */
#login form input { color: #555555; }

/* Color de fondo LOGIN (azul claro) */
.login form { background-color: #eee; }

/* CASILLA >> RECORDARME
------------------------------------------------- */
form .forgetmenot {
	float: left;
	font-weight: normal;
	margin-bottom: 0;
	margin-left: 2px; }

/* BOTON >> INICIAR SESIÓN
------------------------------------------------- */
#login form .submit input {
	-khtml-border-radius: 3px;
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	background-color: #CEE1EF;
	border-color: #80B5D0;
	border-radius: 3px;
	border-style: solid;
	border-width: 1px;
	border: none;
	color: #224466;
	cursor: pointer;
	float: right;
	font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
	font-size: 13px;
	margin-top: -6px;
	padding: 3px 5px;
	text-decoration: none; }

	#login form .submit input:hover {
		background-color: #9ACBEF;
		border-color: #328AB2;
		color: #FFF; }

/* FOOTER FORMULARIO
------------------------------------------------- */
#nav {
	margin: 0 0 0 8px;
	padding: 16px;
	text-align: center; }

.login #nav a { color: #777777; }

/* MENSAJES DE ERROR (FORMULARIO)
------------------------------------------------- */
#login_error {
	background-color: #FFEBE8;
	border-color: #CC0000;
	border-style: solid;
	border-width: 1px;
	margin: 0 0 13px 8px;
	padding: 8px; }

        )

    [1] => Array
        (
            [0] => .login
        )

    [2] => Array
        (
            [0] =>  #borde-top a:hover 
        )

    [3] => Array
        (
            [0] =>  color: #000; }

/* TITULO PRINCIPAL (LOGO)
------------------------------------------------- */
h1 {
	background: url(../imagenes/header/logo-acceso-panel.png) no-repeat;
	display: block;
	height: 40px;
	margin-left: 15px;
	overflow: hidden;
	padding-bottom: 15px;
	text-indent: -9999px;
	width: 320px; }

/* FORMULARIO
------------------------------------------------- */
form {
	-khtml-border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-radius: 5px;
	font-weight: bold;
	margin-left: 8px;
	padding: 16px 16px 40px 16px; }

	form p { margin-bottom: 24px; }

/* Tamaño del recuadro */
#login {
	margin: 7em auto;
	width: 350px; }

/* Tamaño de las casillas USER Y PASS */
#user_pass, #user_login {
	font-size: 20px;
	margin-right: 6px;
	padding: 3px;
	width: 97%; }

/* Color texto input */
#login form input { color: #555555; }

/* Color de fondo LOGIN (azul claro) */
.login form { background-color: #eee; }

/* CASILLA >> RECORDARME
------------------------------------------------- */
form .forgetmenot {
	float: left;
	font-weight: normal;
	margin-bottom: 0;
	margin-left: 2px; }

/* BOTON >> INICIAR SESIÓN
------------------------------------------------- */
#login form .submit input {
	-khtml-border-radius: 3px;
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	background-color: #CEE1EF;
	border-color: #80B5D0;
	border-radius: 3px;
	border-style: solid;
	border-width: 1px;
	border: none;
	color: #224466;
	cursor: pointer;
	float: right;
	font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
	font-size: 13px;
	margin-top: -6px;
	padding: 3px 5px;
	text-decoration: none; }

	#login form .submit input:hover {
		background-color: #9ACBEF;
		border-color: #328AB2;
		color: #FFF; }

/* FOOTER FORMULARIO
------------------------------------------------- */
#nav {
	margin: 0 0 0 8px;
	padding: 16px;
	text-align: center; }

.login #nav a { color: #777777; }

/* MENSAJES DE ERROR (FORMULARIO)
------------------------------------------------- */
#login_error {
	background-color: #FFEBE8;
	border-color: #CC0000;
	border-style: solid;
	border-width: 1px;
	margin: 0 0 13px 8px;
	padding: 8px; }

        )

)
</pre>
Qué es lo que hago mal?