Continuo el POST anterior con el script y los errores que intento solucionar
super_parser.php
Código PHP:
Ver original<?
/*
Objetivo: Extraer todos los atributos HTML, y propiedades CSS (id y class)
Para compararlos con una hoja de estilo y eliminar las propiedades que no se usen.
Archivo web.htm >> extraemos los atributos HTML, ID y CLASS
Archivo style.css >> comparamos los atributos extraidos en el archivo web.htm
y nos quedamos con la parte útil del fichero style.css
*/
function Extraer_Tags_HTML($file_html){
// En el primer parantesis le decimos los tags que descarta
preg_match_all('/<(?!meta|title|head|link)(\w+)[^>]*\/?>/',$html,$matches); $sin_duplicados=array_unique($matches[1]); //elimina los tags HTML repetidos
return $sin_duplicados;
}
function Extraer_Class_ID($file_html){
preg_match_all('/<(a|p|form|h1|label|input|div|body)[^>](?:(class)=["|\'](.*?)["|\'])|(?:(id)=["|\'](.*?)["|\'])[^>]*>/is',$html,$matches);
//eliminamos los repetidos
//Quedara un valor en cada array en blanco, lo eliminamos así
foreach($clases as $item){ if ($item!=''){$resultado_class[] = $item;} }
foreach($id as $item){ if ($item!=''){$resultado_id[] = $item;} }
return array($resultado_id,$resultado_class); }
function parser_css ($file_css,$patron){
preg_match_all("/[#\s\w:-]*$patron\s*[#\s\w:-]*\{[^\}]*\}/is",$css,$matches);
return $matches[0];
}
// -------- PROGRAMA -----------------
$file_html='web.htm';
$file_css='style.css';
// Imprime el array de tags HTML
$tags_html=Extraer_Tags_HTML($file_html);
$estilo=Extraer_Class_ID($file_html);
echo "<pre>";
echo "HTML<br/>";
echo "ID<br/>";
echo "<br/>CLASS<br/>";
echo "</pre>";
// ---->> TAGS HTML
echo "<br/><br/> <strong>TAGS HTML</strong> <br/><br/>";
foreach($tags_html as $value){
preg_match_all("/[.\#\s\w:-]*$value\s*[#\s\w:-]*\{[^\}]*\}/is",$css,$matches); foreach ($matches[0] as $propiedad){
echo $propiedad;
}
}
// ---->> TAGS ID
echo "<br/><br/> <strong>TAGS ID</strong> <br/><br/>";
foreach($estilo[0] as $value){
echo $value;
preg_match_all("/[\.#\s\w:-]*#\$value\s*[#\s\w:-]*\{[^\}]*\}/is",$css,$matches); foreach ($matches[0] as $propiedad){
echo $propiedad;
}
}
// ---->> TAGS CLASS
echo "<br/><br/> <strong>TAGS CLASS</strong> <br/><br/>";
foreach($estilo[1] as $value){
echo $value;
preg_match_all("/[\.#\s\w:-]*\.\$value\s*[#\s\w:-]*\{[^\}]*\}/is",$css,$matches); foreach ($matches[0] as $propiedad){
echo $propiedad;
}
}
?>
La expresión regular de los tags ID Y la de los CLASS no funcionan como debería
Podéis echarme una mano, estoy seguro que es algo muy pequeño que se me está escapando y no lo veo
Muchas gracias de antemano!