#!/usr/bin/php function ascii85decode($str) { $newstring = ''; $whiteSpace = array("\x00","\x09","\x0A","\x0C","\x0D","\x20"); $str = str_replace('<~','',$str); $str = str_replace($whiteSpace,'',$str); if(substr($str,-2)!='~>') { return ''; } $str = substr($str,0,(strlen($str)-2)); $dataLength = strlen($str); for($i=0; $i<$dataLength; $i+=5) { $b = 0; if(substr($str,$i,1)=="z") { $i -= 4; $newstring .= pack("N",0); continue; } $c = substr($str,$i,5); if(strlen($c)<5) { break; } $c = unpack('C5',$c); $value=0; for($j=1; $j<=5; $j++) { $value += (($c[$j]-33)*pow(85,(5-$j))); } $newstring .= pack("N",$value); } if($i<$dataLength) { $value = 0; $chunk = substr($str,$i); $partialLength = strlen($chunk); for($j=0; $j<(5-$partialLength); $j++){ $chunk .= 'u'; } $c = unpack('C5',$chunk); for($j=1; $j<=5; $j++) { $value += (($c[$j]-33)*pow(85,(5-$j))); } $foo = pack("N",$value); $newstring .= substr($foo,0,($partialLength-1)); } return $newstring; } $data = substr(file_get_contents("$argv[1]"), 11); $res = ascii85decode($data); print $res; ?>