offline
- savan2
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Građanin
- Pridružio: 15 Jul 2009
- Poruke: 150
|
Napisano: 05 Avg 2011 21:57
Pozdrav svima, imam jednu perl skriptu koju bih da portujem u php. Dali neko zeli da mi da primer kako ove dve funkciju iz perl da portujem u php?
sub reversestring {
return pack("C*", reverse unpack("C*", shift));
}
# in: 96 bytes hdr 0x80-0xdf
# out: 16 bytes
sub unpack_80 {
my $hdr= shift;
#printf("packed hdr80 = %s\n", unpack("H*", $hdr));
my $data= "\x00" x 16;
for (my $i=0 ; $i<16 ; $i++) {
substr($data, 15-$i, 1)= substr($hdr, $ofs80list[$i]+4, 1);
}
my $calccrc= XdaDevelopers::NbfUtils::crc32(substr($hdr, 0, 0x5c), 0);
my $storedcrc= unpack("V", substr($hdr, 0x5c, 4));
if ($calccrc!=$storedcrc) {
printf("hdr80: crc mismatch: stored=%08lx calc=%08lx\n", $storedcrc, $calccrc);
}
return $data;
}
Jednu funkciju sam preveo iz perl:
our %deskeys= (
dfdfdfdfdfd=>[
pack("C*", map { $_-0x60 } ( 0xB5, 0xC6, 0x94, 0xC4, 0x98, 0xC6, 0x95, 0xA4 )),
pack("C*", map { $_-0x60 } ( 0xC6, 0xC5, 0x95, 0xC7, 0x98, 0xA5, 0x95, 0x91 )),
pack("C*", map { $_-0x60 } ( 0xC3, 0xA3, 0xC2, 0x96, 0xC1, 0x91, 0xC6, 0xC6 )),
],
);
u php:
function cube($n) { return($n - 0x60); }
$deskeys = array();
$a = array(0xB5, 0xC6, 0x94, 0xC4, 0x98, 0xC6, 0x95, 0xA4);
$b = array(0xC6, 0xC5, 0x95, 0xC7, 0x98, 0xA5, 0x95, 0x91);
$c = array(0xC3, 0xA3, 0xC2, 0x96, 0xC1, 0x91, 0xC6, 0xC6);
$aa = array_map("cube", $a);
$bb = array_map("cube", $b);
$cc = array_map("cube", $c);
for ($i=0; $i<8; $i++)
{
$deskeys[0] .= pack("C*", $aa[$i]);
$deskeys[1] .= pack("C*", $bb[$i]);
$deskeys[2] .= pack("C*", $cc[$i]);
}
//print_r($deskeys);
Ove dve gore nemam ideju kako, ne znam dali je shift variabla ili je shift array_shift
Dopuna: 11 Avg 2011 17:11
Zar niko?
|