pto[$res] = 'na';
}
$items_duda = array(21, 22, 3202, 32, 3401, 34, 36, 37, 41, 42, 94, 111, 113, 114, 123, 132, 133, 134, 135, 136, 137, 138, 139, 1310, 141, 142, 143);
foreach ($items_duda as $res) {
$this->pto[$res] = 'duda';
}
if ($redir != "") { $this->tot['url_redir'] = $redir; }
if ($meta != "") { $this->tot['meta_redir'] = $meta; }
foreach ($tags as $key => $tag) {
preg_match("@<([/|\?|!]*[\w]+)@i", $tag, $el);
$elem = strtolower($el[1]);
if ($tag{1} != '/') {
$this->tot[$elem]++;
$this->tot['total']++;
}
$this->Sumar_Attr($tag,$atributos,'attr_');
$this->Sumar_Attr($tag,$eventos,'event_');
if (preg_match("@style=[\"\']?([^\"\'\/\>]*)@i",$tag,$est)) {
$cssinc .= ' {'.$est[1].'}';
$this->tot['hay_estilos'] = 1;
}
if (($cierre_a == 1) && ($elem == 'a')) {
$this->tot['a_adya']++;
}
$cierre_a = 0;
if (($noframe_vacio == 1) && ($elem != '/noframes')) {
$noframe_vacio = 0;
}
// TODO: indentation!!
switch ($elem) {
case '!doctype':
$this->tot['dtd'] = htmlspecialchars($tag);
break;
case 'a':
preg_match("@href=([\"\'])? (?(1) (.*?)\\1 | ([^\s\>]+))@ix",$tag,$outurl);
$this->hrefa[] = Absolute_URL(URL_BASE,$outurl[2]);
if (preg_match("@^javascript:@i", $outurl[2])) {
$this->tot['href_javascript']++;
$this->pto[6301] = 'mal';
}
if (count(count_chars($outurl[2], 1)) < 2) {
if (preg_match("@on(click|keypress|dblclick)@i",$tag)) {
$this->tot['href_javascript']++;
$this->pto[6301] = 'mal';
}
}
if (preg_match("@\.(aif|aifc|aiff|au|m3u|mid|mp3|ra|ram|rmi|snd|wav)$@i", $outurl[2])) {
$this->tot['hrefson']++;
$this->res_11_duda++;
$this->pto[1109] = 'duda';
} else if (preg_match("@\.(asf|asr|asx|avi|lsf|lsx|mov|movie|mp2|mpa|mpe|mpeg|mpg|mpv2|ppt|qt|swf)$@i", $outurl[2])) {
$this->tot['hrefapp']++;
$this->res_11_duda++;
$this->pto[1110] = 'duda';
$this->pto[1303] = 'duda';
$this->pto[1403] = 'duda';
}
$this->pto[131] = 'duda';
break;
case '/a':
$enlace = preg_replace('@ @','',$contents[$key]);
if (trim($enlace) == '') {
$cierre_a = 1;
}
break;
case 'applet':
$this->Sum_Attr_Elem($tag,$dep_applet,'attr_deprec');
$this->Sum_Attr_Elem($tag,'alt','alt_applet');
$this->Sum_Attr_Elem($tag,$pres_applet,'attr_pres');
$this->elem_prog++;
$this->res_11_duda++;
$this->pto[1106] = 'duda';
$this->pto[31] = 'duda';
$this->pto[6201] = 'duda';
$this->pto[6304] = 'duda';
$this->pto[63] = 'duda';
$this->pto[8103] = 'duda';
break;
case 'area':
preg_match("@href=([\"\'])? (?(1) (.*?)\\1 | ([^\s\>]+))@ix",$tag,$outar);
$this->tot['areas'][] = Absolute_URL(URL_BASE,$outar[2]);
$this->Sum_Attr_Elem($tag,'alt','alt_area');
if (preg_match("@\.(aif|aifc|aiff|au|m3u|mid|mp3|ra|ram|rmi|snd|wav)$@i", $outar[2])) {
$this->tot['hrefson']++;
$this->res_11_duda++;
$this->pto[1109] = 'duda';
} else if (preg_match("@\.(asf|asr|asx|avi|lsf|lsx|mov|movie|mp2|mpa|mpe|mpeg|mpg|mpv2|ppt|qt|swf)$@i", $outar[2])) {
$this->tot['hrefapp']++;
$this->res_11_duda++;
$this->pto[1110] = 'duda';
$this->pto[1303] = 'duda';
$this->pto[1403] = 'duda';
}
break;
case 'basefont':
$this->Sum_Attr_Elem($tag,$dep_basefont,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_basefont,'attr_pres');
break;
case 'body':
$body = 1;
$this->Sum_Attr_Elem($tag,$dep_body,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_body,'attr_pres');
break;
case 'blockquote':
$this->Sum_Attr_Elem($tag,'cite','attr_meta');
break;
case 'br':
$this->Sum_Attr_Elem($tag,'clear','attr_deprec');
$this->Sum_Attr_Elem($tag,'clear','attr_pres');
break;
case 'caption':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
break;
case 'del':
$this->Sum_Attr_Elem($tag,'cite','attr_meta');
break;
case 'dir':
$this->Sum_Attr_Elem($tag,'compact','attr_deprec');
$this->Sum_Attr_Elem($tag,'compact','attr_pres');
break;
case 'div':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
break;
case 'dl':
$this->Sum_Attr_Elem($tag,'compact','attr_deprec');
$this->Sum_Attr_Elem($tag,'compact','attr_pres');
break;
case 'embed':
$this->pto[1301] = 'duda';
$this->pto[1401] = 'duda';
$this->pto[31] = 'duda';
$this->pto[6201] = 'duda';
$this->pto[6303] = 'duda';
$this->pto[63] = 'duda';
$this->pto[8102] = 'duda';
break;
case 'font':
$this->Sum_Attr_Elem($tag,$dep_basefont,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_basefont,'attr_pres');
break;
case 'frame':
$this->pto[6202] = 'duda';
if (stristr($tag," src=")) {
preg_match("@src=([\"\'])? (?(1) (.*?)\\1 | ([^\s\>]+))@ix",$tag,$frm);
$this->marcos[] = Absolute_URL(URL_BASE,$frm[2]);
if (preg_match("@\.(jpg|jpeg|gif|png|tif|bmp|swf)$@i", $frm[2])) {
$this->tot['img_en_frame']++;
$this->pto[6202] = 'mal';
$this->pto[62] = 'mal';
}
} else {
$this->marcos[] = '(Marco sin contenido inicial)';
}
if (strstr($tag,'title=')) {
$this->tot['titulo_frame']++;
}
if (strstr($tag,'longdesc=')) {
$this->tot['longdesc_frame']++;
}
break;
case 'h1':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
break;
case 'h2':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
if($this->tot['h1'] == 0) {
$this->tot['horden']++;
}
break;
case 'h3':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
if (($this->tot['h2'] == 0) || ($this->tot['h1'] == 0)) {
$this->tot['horden']++;
}
break;
case 'h4':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
if (($this->tot['h3'] == 0) || ($this->tot['h2'] == 0) || ($this->tot['h1'] == 0)) {
$this->tot['horden']++;
}
break;
case 'h5':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
if (($this->tot['h4'] == 0) || ($this->tot['h3'] == 0) || ($this->tot['h2'] == 0) || ($this->tot['h1'] == 0)) {
$this->tot['horden']++;
}
break;
case 'h6':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
if (($this->tot['h3'] == 5) || ($this->tot['h3'] == 4) || ($this->tot['h3'] == 0) || ($this->tot['h2'] == 0) || ($this->tot['h1'] == 0)) {
$this->tot['horden']++;
}
break;
case 'hr':
$this->Sum_Attr_Elem($tag,$dep_hr,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_hr,'attr_pres');
break;
case 'html':
preg_match("@ lang=([\"\'])? (?(1) (.*?)\\1 | ([^\s\>]+))@ix",$tag,$outlan);
$this->tot['lang_pri'] = $outlan[2];
$this->tot['attr_lang']--;
if (stristr($tag,"xhtml")) {
$this->tot['xhtml']++;
preg_match("@xml:lang=([\"\'])? (?(1) (.*?)\\1 | ([^\s\>]+))@ix",$tag,$outxml);
$this->tot['lang_xml'] = $outxml[2];
}
break;
case 'iframe':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
$this->res_11_duda++;
$this->pto[1108] = 'duda';
break;
case 'img':
$this->Sum_Attr_Elem($tag,$dep_img,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_img,'attr_pres');
$this->Sum_Attr_Elem($tag,'alt','alt_img');
if (stristr($tag," usemap")) { $this->tot['usemap']++; }
if (stristr($tag," ismap")) {
$this->tot['ismap']++;
$this->pto[12] = 'duda';
$this->pto[91] = 'mal';
$this->pto[9201] = 'duda';
}
$this->pto[31] = 'duda';
break;
case 'input':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
if (preg_match("@type=[\"\']?image@i",$tag)) {
$this->tot['input_image']++;
$this->Sum_Attr_Elem($tag,'alt','alt_input');
if (stristr($tag," usemap")) { $this->tot['usemap']++; }
if (stristr($tag," ismap")) {
$this->tot['ismap']++;
$this->pto[12] = 'duda';
$this->pto[91] = 'mal';
$this->pto[9201] = 'duda';
}
}
preg_match("@id=([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ix",$tag,$outid);
$this->tot['id_for'][] = $outid[2];
if (preg_match("@type=[\"\']?(text|password|radio|checkbox|file)@i", $tag)) {
$this->tot['input_label']++;
}
if (preg_match("@type=[\"\']?text@i",$tag)) {
$this->tot['input_text']++;
if (preg_match("@value=([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ix",$tag,$outxt)) {
if(trim($outxt[2]) == '') { $this->tot['input_vacio']++; }
} else {
$this->tot['input_vacio']++;
}
}
break;
case 'ins':
$this->Sum_Attr_Elem($tag,'cite','attr_meta');
break;
case 'label':
$this->Sum_Attr_Elem($tag,'for','attr_for');
if (preg_match("@for=([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ix",$tag,$outfor)) {
$this->tot['for_id'][] = $outfor[2];
}
break;
case 'legend':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
break;
case 'li':
$this->Sum_Attr_Elem($tag,'type','attr_deprec');
$this->Sum_Attr_Elem($tag,'type','attr_pres');
break;
case 'link':
if (preg_match("@rel=[\"\']?(.*)stylesheet@i",$tag)) {
if (!preg_match("@media=[\"\']?print[\"\']?@i",$tag)) {
$this->tot['css_externa']++;
preg_match("@href=([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ix",$tag,$outlk);
$this->cssext[] = Absolute_URL(URL_BASE,$outlk[2]);
$this->tot['css'][] = Absolute_URL(URL_BASE,$outlk[2]);
}
$this->tot['hay_estilos'] = 1;
}
if (preg_match("@ (rel|rev)=@i",$tag)) {
$this->tot['link_rel']++;
}
break;
case 'menu':
$this->Sum_Attr_Elem($tag,'compact','attr_deprec');
$this->Sum_Attr_Elem($tag,'compact','attr_pres');
break;
case 'meta':
if (preg_match("@http-equiv=[\"\']?refresh@i",$tag)) {
if (preg_match("@content=[\"\']?\d+;[\s]*URL@i",$tag)) {
$this->tot['redirect']++;
$this->pto[7501] = 'mal';
$this->pto[75] = 'mal';
} else {
$this->tot['refresh']++;
$this->pto[7401] = 'mal';
$this->pto[74] = 'mal';
}
}
break;
case 'noframes':
$nofrm = preg_replace('@ @','',$contents[$key]);
if (trim($nofrm) == '') {
$noframe_vacio = 1;
}
break;
case '/noframes':
if ($noframe_vacio == 1) {
$this->tot['noframe_vacio']++;
}
break;
case 'object':
$this->Sum_Attr_Elem($tag,$dep_img,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_img,'attr_pres');
if (stristr($tag," usemap")) { $this->tot['usemap']++; }
if (stristr($tag,"shockwave/cabs/flash")) {
$totales['flash']++;
}
$this->elem_prog++;
$this->res_11_duda++;
$this->pto[1107] = 'duda';
$this->pto[1302] = 'duda';
$this->pto[1402] = 'duda';
$this->pto[31] = 'duda';
$this->pto[6201] = 'duda';
$this->pto[6303] = 'duda';
$this->pto[63] = 'duda';
$this->pto[8104] = 'duda';
break;
case 'ol':
$this->Sum_Attr_Elem($tag,$dep_ol,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_ol,'attr_pres');
break;
case 'p':
$this->Sum_Attr_Elem($tag,'align','attr_deprec');
$this->Sum_Attr_Elem($tag,'align','attr_pres');
break;
case 'pre':
$this->Sum_Attr_Elem($tag,'width','attr_deprec');
$this->Sum_Attr_Elem($tag,'width','attr_pres');
break;
case 'q':
$this->Sum_Attr_Elem($tag,'cite','attr_meta');
break;
case 'script':
$this->Sum_Attr_Elem($tag,'language','attr_deprec');
if ($body == 1) {
$this->tot['script_body']++;
$this->res_11_duda++;
$this->pto[1104] = 'duda';
}
$this->pto[6201] = 'duda';
$this->pto[6302] = 'duda';
$this->pto[63] = 'duda';
$this->pto[6501] = 'duda';
$this->pto[65] = 'duda';
break;
case 'select':
preg_match("@id=([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ix",$tag,$outsel);
$this->tot['id_for'][] = $outsel[2];
break;
case 'style':
$cont_style = preg_replace('@"@','"',$contents[$key]);
$this->Parse_CSS($cont_style, URL_BASE);
$this->cssinc .= $cont_style;
$this->tot['hay_estilos'] = 1;
break;
case 'table':
$this->Sum_Attr_Elem($tag,$dep_table,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_table,'attr_pres');
$this->Sum_Attr_Elem($tag,'summary','summary');
if (preg_match("@(height|width)=[\"\']?\d[\"\'\s\>]+@i",$tag)) {
$this->tot['htmlabs']++;
}
break;
case 'td':
$this->Sum_Attr_Elem($tag,$dep_td,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_td,'attr_pres');
$this->Sum_Attr_Elem($tag,$asoc_td,'cell_asoc');
if (preg_match("@(height|width)=[\"\']?\d[\"\'\s\>]+@i",$tag)) {
$this->tot['htmlabs']++;
}
break;
case 'textarea':
if (trim($contents[$key]) == '') {
$this->tot['input_vacio']++;
}
preg_match("@id=([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ix",$tag,$outxta);
$this->tot['id_for'][] = $outxta[2];
break;
case 'th':
$this->Sum_Attr_Elem($tag,$dep_td,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_td,'attr_pres');
$this->Sum_Attr_Elem($tag,$asoc_td,'cell_asoc');
$this->Sum_Attr_Elem($tag,'abbr','th_abbr');
if (preg_match("@(height|width)=[\"\']?\d[\"\'\s\>]+@i",$tag)) {
$this->tot['htmlabs']++;
}
break;
case 'tr':
$this->Sum_Attr_Elem($tag,'bgcolor','attr_deprec');
$this->Sum_Attr_Elem($tag,'bgcolor','attr_pres');
break;
case 'ul':
$this->Sum_Attr_Elem($tag,$dep_ul,'attr_deprec');
$this->Sum_Attr_Elem($tag,$dep_ul,'attr_pres');
break;
} // End switch
} // End foreach
$this->Revisar_CSS();
$this->Define_Results();
$this->Finalizar();
} // Fin function This_Page
/*========================================
Function: Add attributes with prefix
e.g., $total['event_onload']
========================================*/
function Sumar_Attr($tag,$arry,$pref) {
$count = count($arry);
for ($i = 0; $i < $count; $i++) {
if (stristr($tag,' '.$arry[$i].'=')) {
$this->tot[$pref.$arry[$i]]++;
}
}
} // End function Sumar_Attr
/*========================================
Function: Add attributes
e.g., $total['attr_deprec']
========================================*/
function Sum_Attr_Elem($tag,$arg,$var) {
if (is_array($arg)) {
$count = count($arg);
for ($i = 0; $i < $count; $i++) {
if (stristr($tag,' '.$arg[$i].'=')) {
$this->tot[$var]++;
}
}
} else {
if (stristr($tag,' '.$arg.'=')) {
$this->tot[$var]++;
}
}
}// End function Sum_Attr_Elem
/*===============================
Function: Parse CSS
Get URI's of external CSS
===============================*/
function Parse_CSS($esta, $base, $op='ext') {
$esta = preg_replace( "@\s\s+@", " ", $esta);
$esta = preg_replace("@/\*[\s\S]*\*/@sU","",$esta);
$esta = preg_replace("|@import\s+\S+\s+print\s?;|is","",$esta);
$this->CSS_Absolute($esta);
preg_match_all("/@import\s+(url)?[\(]?[\"|']?([^ |'|\"|\;]*)/", $esta, $imp);
for ($i=0; $i< count($imp[0]); $i++) {
if ($op == 'ext') {
$this->cssext[] = Absolute_URL($base,$imp[2][$i]);
} else {
$this->cssimport[] = Absolute_URL($base,$imp[2][$i]);
}
if (is_array($this->tot['css']) && !in_array($imp[2][$i],$this->tot['css'])) {
$this->tot['css'][] = Absolute_URL($base,$imp[2][$i]);
}
}
} // End function Parse_CSS
/*==========================
Function: Check CSS
for absolutes values
==========================*/
function CSS_Absolute($esta_css) {
preg_match_all("/[\{|\;](.*)[\}|\;]/sU", $esta_css, $resulta);
for ($i=0; $i< count($resulta[0]); $i++) {
if (preg_match("@:(.*)[0-9]+(in|cm|mm|pt|pc)@i", $resulta[1][$i])) {
$this->tot['cssabs']++;
}
if (preg_match("@font(-size)[\s]*:(.*)[0-9]+px@i", $resulta[1][$i])) {
$this->tot['cssfontpx']++;
}
} // End for
} // End function CSS_Absolute
/*=================================
Function: Read external CSS &
get URI base
=================================*/
function Revisar_CSS() {
$css = array ('cssext', 'cssimport');
foreach ($css as $kcss => $vcss) {
foreach ($this->$vcss as $k => $v) {
$csstmp = '';
$file = @fopen($v, "r");
if ($file) {
while (!feof($file)) {
$csstmp .= stripslashes(fread($file, 8192));
}
fclose($file);
// URI base
$sep = explode("/",$v);
$saca = array_pop($sep);
$basetmp = rtrim($v,$saca);
$this->Parse_CSS($csstmp, $basetmp, 'imp');
if ($vcss == 'cssimport') {
$this->cssext[] = $v; // Add URI
}
}
} // End foreach
} // End foreach
} // End function Revisar_CSS
/*=======================================
Function: Define results for each
checkpoint & sub-item
e.g., $pto[11] means checkpoint 1.1
$pto[1101] means sub-item 01 (images)
of checkpoint 1.1
=======================================*/
function Define_Results() {
if ($this->tot['img'] > 0) {
if ($this->tot['img'] > $this->tot['alt_img']) {
$this->pto[1101] = 'mal';
$this->res_11_mal++;
} else {
$this->pto[1101] = 'duda';
$this->res_11_duda++;
}
}
if ($this->tot['input_image'] > 0) {
if ($this->tot['input_image'] > $this->tot['alt_input']) {
$this->pto[1102] = 'mal';
$this->res_11_mal++;
} else {
$this->pto[1102] = 'duda';
$this->res_11_duda++;
}
}
if ($this->tot['area'] > 0) {
if ($this->tot['area'] > $this->tot['alt_area']) {
$this->pto[1103] = 'mal';
$this->res_11_mal++;
} else {
$this->pto[1103] = 'duda';
$this->res_11_duda++;
}
}
// 1104 Script_body en This_Page
if ($this->tot['embed'] > 0) {
$this->elem_prog++;
if ($this->tot['embed'] > $this->tot['noembed']) {
$this->pto[1105] = 'mal';
$this->res_11_mal++;
} else {
$this->pto[1105] = 'duda';
$this->res_11_duda++;
}
}
// 1106 Applet en This_Page
// 1107 Object en This_Page
// 1108 Iframe en This_Page
// 1109 hrefson en This_Page
// 1110 hrefapp en This_Page
if ($this->tot['frame'] > 0) {
if ($this->tot['noframes'] > 0) {
if ($this->tot['noframe_vacio'] > 0) {
$this->pto[1111] = 'mal';
$this->res_11_mal++;
$this->pto[6502] = 'mal';
$this->pto[65] = 'mal';
if (($this->tot['longdesc_frame'] == 0) && ($this->tot['frame'] > $this->tot['titulo_frame'])) {
$this->pto[122] = 'mal';
} else {
$this->pto[122] = 'duda';
}
} else {
$this->pto[1111] = 'duda';
$this->res_11_duda++;
$this->pto[6502] = 'duda';
$this->pto[65] = 'duda';
$this->pto[122] = 'duda';
}
} else {
$this->pto[1111] = 'mal';
$this->res_11_mal++;
$this->pto[6502] = 'mal';
$this->pto[65] = 'mal';
if (($this->tot['longdesc_frame'] == 0) && ($this->tot['frame'] > $this->tot['titulo_frame'])) {
$this->pto[122] = 'mal';
} else {
$this->pto[122] = 'duda';
}
}
if ($this->tot['frame'] > $this->tot['titulo_frame']) {
$this->pto[121] = 'mal';
} else {
$this->pto[121] = 'duda';
}
}
if ($this->res_11_mal > 0) {
$this->pto[11] = 'mal';
} else if ($this->res_11_duda > 0) {
$this->pto[11] = 'duda';
}
// 12 ismap en This_Page
// 1301 Embed en This_Page
// 1302 Object en This_Page
// 1303 hrefapp en This_Page
if (($this->pto[1301]=='duda') || ($this->pto[1302]=='duda') || ($this->pto[1303]=='duda')) {
$this->pto[13] = 'duda';
}
// 1401 Embed en This_Page
// 1402 Object en This_Page
// 1403 hrefapp en This_Page
if (($this->pto[1401]=='duda') || ($this->pto[1402]=='duda') || ($this->pto[1403]=='duda')) {
$this->pto[14] = 'duda';
}
if ($this->tot['usemap'] > 0) {
foreach ($this->tot['areas'] as $k => $v) {
if (!in_array($v,$this->hrefa)) {
$this->tot['area_sin_red']++;
}
}
if ($this->tot['area_sin_red'] == 0) {
$this->pto[15] = 'bien';
} else {
$this->pto[15] = 'mal';
}
}
if ($this->tot['hay_estilos'] == 1) { // Hay estilos
// Punto 3202
$url_css = 'http://jigsaw.w3.org/css-validator/validator?uri='.urlencode(URL).'&warning=no&profile=css3&output=soap12';
$file_css = @fopen($url_css, "r");
if ($file_css) {
while (!feof($file_css)) {
$res_css .= stripslashes(fread($file_css, 8192));
}
fclose($file_css);
}
if (preg_match("@\