Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/02/2005, 19:55
amj
 
Fecha de Ingreso: marzo-2002
Ubicación: Manizales
Mensajes: 152
Antigüedad: 24 años, 6 meses
Puntos: 1
el problema de los módulos gráficos que da el cpan (sino estoy mal el mejor es el GD) es la instalación, estoy trabajando en un servidor IRIX64 OS5, acerca del manejo de xbm encontré un ejemplo de un contador este es el código por sí a alguien le interesa
Código PHP:
#!/usr/bin/perl
# X-BITMAP

#Digitos en XBM
$num{0,0} =  "0xf0,0x0f";
$num{0,1} =  "0xf0,0x0f";
$num{0,2} =  "0x0c,0x30";
$num{0,3} =  "0x0c,0x30";
$num{0,4} =  "0x0c,0x30";
$num{0,5} =  "0x0c,0x30";
$num{0,6} =  "0x0c,0x30";
$num{0,7} =  "0x00,0x00";
$num{0,8} =  "0x00,0x00";
$num{0,9} =  "0x0c,0x30";
$num{0,10} = "0x0c,0x30";
$num{0,11} = "0x0c,0x30";
$num{0,12} = "0x0c,0x30";
$num{0,13} = "0x0c,0x30";
$num{0,14} = "0xf0,0x0f";
$num{0,15} = "0xf0,0x0f";

$num{1,0} =  "0x00,0x00";
$num{1,1} =  "0x00,0x00";
$num{1,2} =  "0x00,0x30";
$num{1,3} =  "0x00,0x30";
$num{1,4} =  "0x00,0x30";
$num{1,5} =  "0x00,0x30";
$num{1,6} =  "0x00,0x30";
$num{1,7} =  "0x00,0x00";
$num{1,8} =  "0x00,0x00";
$num{1,9} =  "0x00,0x30";
$num{1,10} = "0x00,0x30";
$num{1,11} = "0x00,0x30";
$num{1,12} = "0x00,0x30";
$num{1,13} = "0x00,0x30";
$num{1,14} = "0x00,0x00";
$num{1,15} = "0x00,0x00";

$num{2,0} =  "0xf0,0x0f";
$num{2,1} =  "0xf0,0x0f";
$num{2,2} =  "0x00,0x30";
$num{2,3} =  "0x00,0x30";
$num{2,4} =  "0x00,0x30";
$num{2,5} =  "0x00,0x30";
$num{2,6} =  "0x00,0x30";
$num{2,7} =  "0xf0,0x0f";
$num{2,8} =  "0xf0,0x0f";
$num{2,9} =  "0x0c,0x00";
$num{2,10} = "0x0c,0x00";
$num{2,11} = "0x0c,0x00";
$num{2,12} = "0x0c,0x00";
$num{2,13} = "0x0c,0x00";
$num{2,14} = "0xf0,0x0f";
$num{2,15} = "0xf0,0x0f";

$num{3,0} =  "0xf0,0x0f";
$num{3,1} =  "0xf0,0x0f";
$num{3,2} =  "0x00,0x30";
$num{3,3} =  "0x00,0x30";
$num{3,4} =  "0x00,0x30";
$num{3,5} =  "0x00,0x30";
$num{3,6} =  "0x00,0x30";
$num{3,7} =  "0xf0,0x0f";
$num{3,8} =  "0xf0,0x0f";
$num{3,9} =  "0x00,0x30";
$num{3,10} = "0x00,0x30";
$num{3,11} = "0x00,0x30";
$num{3,12} = "0x00,0x30";
$num{3,13} = "0x00,0x30";
$num{3,14} = "0xf0,0x0f";
$num{3,15} = "0xf0,0x0f";

$num{4,0} =  "0x00,0x00";
$num{4,1} =  "0x00,0x00";
$num{4,2} =  "0x0c,0x30";
$num{4,3} =  "0x0c,0x30";
$num{4,4} =  "0x0c,0x30";
$num{4,5} =  "0x0c,0x30";
$num{4,6} =  "0x0c,0x30";
$num{4,7} =  "0xf0,0x0f";
$num{4,8} =  "0xf0,0x0f";
$num{4,9} =  "0x00,0x30";
$num{4,10} = "0x00,0x30";
$num{4,11} = "0x00,0x30";
$num{4,12} = "0x00,0x30";
$num{4,13} = "0x00,0x30";
$num{4,14} = "0x00,0x00";
$num{4,15} = "0x00,0x00";

$num{5,0} =  "0xf0,0x0f";
$num{5,1} =  "0xf0,0x0f";
$num{5,2} =  "0x0c,0x00";
$num{5,3} =  "0x0c,0x00";
$num{5,4} =  "0x0c,0x00";
$num{5,5} =  "0x0c,0x00";
$num{5,6} =  "0x0c,0x00";
$num{5,7} =  "0xf0,0x0f";
$num{5,8} =  "0xf0,0x0f";
$num{5,9} =  "0x00,0x30";
$num{5,10} = "0x00,0x30";
$num{5,11} = "0x00,0x30";
$num{5,12} = "0x00,0x30";
$num{5,13} = "0x00,0x30";
$num{5,14} = "0xf0,0x0f";
$num{5,15} = "0xf0,0x0f";

$num{6,0} =  "0xf0,0x0f";
$num{6,1} =  "0xf0,0x0f";
$num{6,2} =  "0x0c,0x00";
$num{6,3} =  "0x0c,0x00";
$num{6,4} =  "0x0c,0x00";
$num{6,5} =  "0x0c,0x00";
$num{6,6} =  "0x0c,0x00";
$num{6,7} =  "0xf0,0x0f";
$num{6,8} =  "0xf0,0x0f";
$num{6,9} =  "0x0c,0x30";
$num{6,10} = "0x0c,0x30";
$num{6,11} = "0x0c,0x30";
$num{6,12} = "0x0c,0x30";
$num{6,13} = "0x0c,0x30";
$num{6,14} = "0xf0,0x0f";
$num{6,15} = "0xf0,0x0f";

$num{7,0} =  "0xf0,0x0f";
$num{7,1} =  "0xf0,0x0f";
$num{7,2} =  "0x00,0x30";
$num{7,3} =  "0x00,0x30";
$num{7,4} =  "0x00,0x30";
$num{7,5} =  "0x00,0x30";
$num{7,6} =  "0x00,0x30";
$num{7,7} =  "0x00,0x00";
$num{7,8} =  "0x00,0x00";
$num{7,9} =  "0x00,0x30";
$num{7,10} = "0x00,0x30";
$num{7,11} = "0x00,0x30";
$num{7,12} = "0x00,0x30";
$num{7,13} = "0x00,0x30";
$num{7,14} = "0x00,0x00";
$num{7,15} = "0x00,0x00";

$num{8,0} =  "0xf0,0x0f";
$num{8,1} =  "0xf0,0x0f";
$num{8,2} =  "0x0c,0x30";
$num{8,3} =  "0x0c,0x30";
$num{8,4} =  "0x0c,0x30";
$num{8,5} =  "0x0c,0x30";
$num{8,6} =  "0x0c,0x30";
$num{8,7} =  "0xf0,0x0f";
$num{8,8} =  "0xf0,0x0f";
$num{8,9} =  "0x0c,0x30";
$num{8,10} = "0x0c,0x30";
$num{8,11} = "0x0c,0x30";
$num{8,12} = "0x0c,0x30";
$num{8,13} = "0x0c,0x30";
$num{8,14} = "0xf0,0x0f";
$num{8,15} = "0xf0,0x0f";

$num{9,0} =  "0xf0,0x0f";
$num{9,1} =  "0xf0,0x0f";
$num{9,2} =  "0x0c,0x30";
$num{9,3} =  "0x0c,0x30";
$num{9,4} =  "0x0c,0x30";
$num{9,5} =  "0x0c,0x30";
$num{9,6} =  "0x0c,0x30";
$num{9,7} =  "0xf0,0x0f";
$num{9,8} =  "0xf0,0x0f";
$num{9,9} =  "0x00,0x30";
$num{9,10} = "0x00,0x30";
$num{9,11} = "0x00,0x30";
$num{9,12} = "0x00,0x30";
$num{9,13} = "0x00,0x30";
$num{9,14} = "0xf0,0x0f";
$num{9,15} = "0xf0,0x0f";

$max_length = 4;
$width = 16*($max_length+1);
$height = 16;

#archivo donde se va a guardar la cuenta
$countfile = "counter.txt";
$srcfile = $ENV{'QUERY_STRING'};
if (
$srcfile eq "") {
    
$srcfile="test";
}
$now_host = $ENV{'REMOTE_ADDR'};
if (
$now_host eq "") {
    
$now_host="test";
}


if ( 
open(FILE, "<$countfile") ) {
    @
file = <FILE> ;
    
close(FILE);
} else {
    print 
"Error : Counter File is not found!\n";
    
flock(LOCK, 8);
    
close(LOCK);
    exit(
1);
};
$joinedfile = join( '', @file ); 
@
count_ = split(/n/,$joinedfile);
open(OUT, ">$countfile");
foreach 
$in (@count_) {
    (
$in_counter, $hostname ,$checkfile) = split(/,/, $in, 3);
    if (
$checkfile eq $srcfile) {
        
$found_flag = "yes";
        if (
$now_host ne $hostname ) {
            
$counter = $in_counter+1;
        } else {
            
$counter = $in_counter;
        };
        print 
OUT "$counter,$now_host,$srcfile\n";
    } else {
        print 
OUT "$in\n";
    }
}
if (
$found_flag ne "yes"){
    print 
OUT "1,$now_host,$srcfile\n";
};
close(OUT);
flock(LOCK, 8);
close(LOCK);

(
$sec,$min,$hour,$day,$mon,$year) = localtime(time);
$mon = $mon + 1; 
$year = $year + 1900 ;

open(LOCK, "<counter.lock");
flock(LOCK, 2);
open(LOG, ">>COUNTLOG.TXT");
print 
LOG "$year/$mon/$day,$hour:$min:$sec , $ENV{'QUERY_STRING'} , $ENV{'REMOTE_ADDR'} , $ENV{'HTTP_USER_AGENT'} , $ENV{'HTTP_REFERER'}\n";
close(LOG);
flock(LOCK, 8);
close(LOCK);

print <<
EOF;
Content-type: image/x-xbitmap

#define cg_width $width
#define cg_height $height
static char cg_bits[] = {
EOF
foreach $a (0..15) {
    
$count__ = sprintf("%05d",$counter);
    foreach 
$i (0..$max_length) {
        
$num_ = substr($count__,$i,1);
        print 
"$num{$num_ , $a},";
    }
    print 
"\n";
}
print 
"}\;\n\n";
__END__ 
__________________
"SJ