'.$lang['color_title'].' » '.$lang['color_title2']; $titulo = $lang['color_title2']; $ayuda = ''.$lang['ico_alt_man'].''; } else { $miga = 'Hera 2.1 Beta'; $titulo = $lang['color_title']; $ayuda = ''; } ?> HERA - <?php echo $titulo; ?>
<?php echo $lang['logo_alt']; ?>

fetch($File->uri_real, 'base', 'arry')) { Get_File($File->results); } else { $resultado = '

'.ucfirst($lang['file_error']).'

'; } $array_color = array(); $array_bg = array(); foreach ($color as $k => $v) { $x = strtoupper(Limpiar_array($v)); if ($x != '') { $array_color[] = $x; } //$array_color[] = strtoupper(Limpiar_array($v)); } foreach ($bg as $k => $v) { $x = strtoupper(Limpiar_array($v)); if ($x != '') { $array_bg[] = $x; } //$array_bg[] = strtoupper(Limpiar_array($v)); } $array_color = array_unique($array_color); $array_bg = array_unique($array_bg); sort($array_color); sort($array_bg); $color_form = base64_encode(serialize($array_color)); $bg_form = base64_encode(serialize($array_bg)); $url_form = $pagina; $color1 = '000000'; $color2 = 'FFFFFF'; $pares = array(); foreach ($combo as $k => $c) { $x = strtoupper(Limpiar_array($c[0])); $y = strtoupper(Limpiar_array($c[1])); $prueba = $x.'/'.$y; if ((!in_array($prueba, $pares)) && ($x != $y)) { $pares[] = $prueba; //$muestra_pares .= '

Primer plano: #'.$y.' / Fondo: #'.$x.'

'."\n"; } } sort($pares); $pares_form = base64_encode(serialize($pares)); $muestra_pares = '

'.$lang['color_combos'].'

'; foreach ($pares as $p) { $partes = explode('/', $p); $muestra_pares .= '

#'.$partes[1].' / #'.$partes[0].'

'."\n"; } } elseif ($_REQUEST['calcular']) { $color_form = $_REQUEST['color_form']; $bg_form = $_REQUEST['bg_form']; $url_form = $_REQUEST['url_form']; $pares_form = $_REQUEST['pares_form']; $array_color = unserialize(base64_decode($color_form)); $array_bg = unserialize(base64_decode($bg_form)); $color1 = strtoupper($_REQUEST['color1']); $color2 = strtoupper($_REQUEST['color2']); if (preg_match("@[0-9A-F]{6}@i", $color1) && preg_match("@[0-9A-F]{6}@i", $color2)) { $r1 = hexdec(substr($color1, 0, 2)); $g1 = hexdec(substr($color1, 2, 2)); $b1 = hexdec(substr($color1, 4, 2)); $r2 = hexdec(substr($color2, 0, 2)); $g2 = hexdec(substr($color2, 2, 2)); $b2 = hexdec(substr($color2, 4, 2)); $brillo1 = (($r1 * 299) + ($g1 * 587) + ($b1 * 114)) / 1000; $brillo2 = (($r2 * 299) + ($g2 * 587) + ($b2 * 114)) / 1000; $difbrillo = abs(round($brillo1 - $brillo2, 0)); if ($difbrillo < 126) { $brillo = 'mal'; } else { $brillo = 'bien'; } $difcolor = (max($r1, $r2) - min($r1, $r2)) + (max($g1, $g2) - min($g1, $g2)) + (max($b1, $b2) - min($b1, $b2)); if ($difcolor < 500) { $color = 'mal'; } else { $color = 'bien'; } $resultado = '

'.ucfirst($brillo).' '; $resultado .= sprintf($lang['color_dif'], $difbrillo); $resultado .= '
'.ucfirst($color).' '; $resultado .= sprintf($lang['color_dif2'], $difcolor).'

'; } else { $resultado = '

'.$lang['color_err'].'

'; } $array_pares = unserialize(base64_decode($pares_form)); $muestra_pares = '

'.$lang['color_combos'].'

'; foreach ($array_pares as $p) { $partes = explode('/', $p); $muestra_pares .= '

#'.$partes[1].' / #'.$partes[0].'

'."\n"; } } // Fin else if echo $resultado; echo '
'; echo '

'.$lang['color_h2a'].'

'."\n"; foreach ($array_color as $k => $v) { echo ''; echo '#'.$v.''; echo "\n"; } echo '

'.$lang['color_cambio'].':'; echo ' #'; echo '

'."\n
\n"; echo '

'.$lang['color_h2b'].'

'."\n"; foreach ($array_bg as $k => $v) { echo ''; echo '#'.$v.''; echo "\n"; } echo '

'.$lang['color_cambio'].':'; echo ' # '; echo '

'."\n
\n"; echo '

'.$lang['color_h2c'].'

'."\n"; echo '
'; echo '

HERA
Revisando la Accesibilidad con Estilo
(SIDAR)

'."\n
\n"; echo '

'; echo ''; echo ''; echo ''; echo ''; echo '

'; } function Limpiar_array($esto) { $search = array ("@#@", "@BLACK@i", "@WHITE@i", "@MAROON@i", "@GREEN@i", "@OLIVE@i", "@NAVY@i", "@PURPLE@i", "@TEAL@i", "@SILVER@i", "@GRAY@i", "@RED@i", "@LIME@i", "@YELLOW@i", "@BLUE@i", "@FUCHSIA@i", "@AQUA@i"); $replace = array ("", "000000", "FFFFFF", "800000", "008000", "808000", "000080", "800080", "008080", "C0C0C0", "808080", "FF0000", "00FF00", "FFFF00", "0000FF", "FF00FF", "00FFFF"); $esto = preg_replace($search,$replace,$esto); if (strlen($esto) == 3) { $r = substr($esto, 0, 1); $g = substr($esto, 1, 1); $b = substr($esto, 2, 1); return $r.$r.$g.$g.$b.$b; } else { return $esto; } } function Get_File($fp) { global $color, $bg, $cssext, $cssimport, $cssinc, $combo; $cssinc = ''; preg_match_all("@]*>(.*)@ismU", $fp, $css, PREG_PATTERN_ORDER); for ($i=0; $i < count($css[0]); $i++) { $cssinc .= $css[1][$i]; } $cssinc = Limpiar($cssinc); $cssext = array(); if (preg_match_all("/@import[\s]*[url]?[\(]?[\"\']?([^\s\'\"\)\;]+)/i", $cssinc, $imp)) { for ($i=0; $i< count($imp[0]); $i++) { $cssext[] = Absolute_URL(URL_BASE,$imp[1][$i]); } } $cssinline = ''; preg_match_all("@<([^>]+)>@sm", $fp, $tagi, PREG_PATTERN_ORDER); for ($i=0; $i < count($tagi[0]); $i++) { if (preg_match("@style[\s]*=[\s]*[\"\']?([^\"\'\/\>]*)@ism",$tagi[1][$i],$est)) { $cssinline .= ' {'.$est[1].'}'; } if (preg_match("@link(.*)rel=[\"\']?(.*)stylesheet@i",$tagi[1][$i])) { preg_match("@href[\s]*=[\s]*([\"\'])? (?(1) (.*?)\\1 | ([^\s\/\>]+))@ismx",$tagi[1][$i],$outlk); $cssext[] = Absolute_URL(URL_BASE,$outlk[2]); } if (preg_match("@(BODY|TABLE|TD|TH)(.*)(bgcolor|background)[\s]*=[\s]*[\"\']?([^\"\'\s\/\>]+\#[0-9A-F]{1,6}|Black|Maroon|Green|Olive|Navy|Purple|Teal|Silver|Gray|Red|Lime|Yellow|Blue|Fuchsia|Aqua|White)@ism",$tagi[1][$i], $back)) { if (trim($back[4]) != '') { $bg[] = $back[4]; } } if (preg_match("@(BASEFONT|FONT)(.*)(color)[\s]*=[\s]*([\"\'])? (?(1) (.*?)\\4 | ([^\s\/\>]+))@ismx",$tagi[1][$i], $clr)) { if (trim($clr[5]) != '') { $color[] = $clr[5]; } } if (preg_match("@(BODY)(.*)(text)[\s]*=[\s]*([\"\'])? (?(1) (.*?)\\4 | ([^\s\/\>]+))@ismx",$tagi[1][$i], $clra)) { if (trim($clra[5]) != '') { $color[] = $clra[5]; } } if (preg_match("@(BODY)(.*)([\s]+link)[\s]*=[\s]*([\"\'])? (?(1) (.*?)\\4 | ([^\s\/\>]+))@ismx",$tagi[1][$i], $clrc)) { if (trim($clrc[5]) != '') { $color[] = $clrc[5]; } } if (preg_match("@(BODY)(.*)(alink)[\s]*=[\s]*([\"\'])? (?(1) (.*?)\\4 | ([^\s\/\>]+))@ismx",$tagi[1][$i], $clrb)) { if (trim($clrb[5]) != '') { $color[] = $clrb[5]; } } if (preg_match("@(BODY)(.*)(vlink)[\s]*=[\s]*([\"\'])? (?(1) (.*?)\\4 | ([^\s\/\>]+))@ismx",$tagi[1][$i], $clrd)) { if (trim($clrd[5]) != '') { $color[] = $clrd[5]; } } } $cssinc .= Limpiar($cssinline); $cssimport = array(); foreach ($cssext as $k => $v) { $csstmp = ''; $file = @fopen($v, "r"); if ($file) { while (!feof($file)) { $csstmp .= stripslashes(fread($file, 8192)); } fclose($file); $csstmp = Limpiar($csstmp); if (preg_match_all("/@import[\s]*(url)?[\(]?[\"\']?([^\s\'\"\)\;]+)/i", $csstmp, $imp)) { //if (preg_match_all("/@import[\s]*(url)?([\(\"\'])? (?(1) (.*?)\\2 | ([^\s\>\)]+))/ix", $csstmp, $imp)) { $sep = explode("/",$v); $saca = array_pop($sep); $basetmp = rtrim($v,$saca); for ($i=0; $i< count($imp[0]); $i++) { $cssimport[] = Absolute_URL($basetmp,$imp[2][$i]); } } $cssinc .= $csstmp; } } // Fin foreach foreach ($cssimport as $k => $v) { $csstmp2 = ''; $file = @fopen($v, "r"); if ($file) { while (!feof($file)) { $csstmp2 .= stripslashes(fread($file, 8192)); } fclose($file); $csstmp2 = Limpiar($csstmp2); $cssinc .= $csstmp2; } } // Fin foreach $combo = array(); preg_match_all("@\{[^\}]*\}@smU", $cssinc, $reglas); for ($i=0; $i< count($reglas[0]); $i++) { //echo $reglas[0][$i]."\n"; preg_match ("@([^\:]background(-color)?)+[\s]*\:[\s]*(\#[0-9A-F]{1,6}|Black|Maroon|Green|Olive|Navy|Purple|Teal|Silver|Gray|Red|Lime|Yellow|Blue|Fuchsia|Aqua|White)[\s]*[\;\}]+@ism", $reglas[0][$i], $colb); if (!in_array($colb[3], $bg)) { $bg[] = $colb[3]; } //echo $colb[3]; preg_match ("@([^\:\-]color)+[\s]*\:[\s]*(\#[0-9A-F]{1,6}|Black|Maroon|Green|Olive|Navy|Purple|Teal|Silver|Gray|Red|Lime|Yellow|Blue|Fuchsia|Aqua|White)[\s]*[\;\}]+@ism", $reglas[0][$i], $colo); if (!in_array($colo[2], $color)) { $color[] = $colo[2]; } if (($colb[3] != '') && ($colo[2] != '')) { $combo[$i][0] = $colb[3]; $combo[$i][1] = $colo[2]; } } // Fin de for } // Fin función Get_File function Limpiar($esto) { $esto = preg_replace( "@\s\s+@", " ", $esto); //$esto = preg_replace("|/\*[\d\D]*?\*/|sU","",$esto); $esto = preg_replace("@\/\*[^*]*\*+([^/*][^*]*\*+)*\/@smU","",$esto); return $esto; } function Absolute_URL($base, $url) { global $totales; @extract(parse_url($url)); do { extract(parse_url($base), EXTR_PREFIX_ALL, "B"); if (!isset($scheme)) { // Scheme de base $scheme = $B_scheme; } elseif ($scheme != $B_scheme) { // No es relativo break; } if (isset($host) || isset($port)) { // No es relativo break; } if (isset($B_host)) $host = $B_host; // Host de base if (isset($B_port)) $port = $B_port; // Port de base if (!isset($path)) { // Path de base $path=$B_path; if (!isset($query) && isset($B_query)) { // Query de base $query=$B_query; } } elseif (!preg_match("@^/@", $path)) { // url no comienza con '/' $ppath = ""; if (isset($B_path)) { // Si base tiene path $ppath = $B_path; $ppath = preg_replace("@/[^/]*$@", "/", $ppath); } else { $ppath = "/"; } $path = $ppath.$path; $oldpath = ""; do { $oldpath = $path; $path = preg_replace('@/\./@','/',$path); } while($path != $oldpath); $path = preg_replace('@/\.$@', '/', $path); do { $oldpath = $path; $path = preg_replace('@/[^/]*/\.\./@','/',$path);} while($path != $oldpath); $path = preg_replace('@/[^/]/\.\.$@','/',$path); $path = preg_replace('@/\.\./@','/',$path); } } while(0); if (!isset($path)) $path = '/'; // Construir url if (isset($scheme)) { $url = "$scheme:"; } if (isset($host)) { $url .= "//$host"; if (isset($port)) { $url .= ":$port"; } } if (isset($path)) $url .= $path; if (isset($query)) { if (!isset($path)) $url .= "/"; $url .= "?$query"; } if (isset($fragment)) $url .= "#$fragment"; return $url; } ?> 0)? $muestra_pares : ''; ?>

<?php echo $lang['ico_alt_pie']; ?>

<?php echo $lang['ico_alt_logo']; ?>

Copyright © Sidar 2003-2005
Carlos Benavídez