Re: trying to understand PHP unpack();

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sonia wrote:
Hi

In Perl I have a part of a script....

# cut..

my $line = '!v2005*08|05+09?04^19*!';
				 ^-- note how my email client screws up your original
string... something I don't really understand...

my ( $s_code, $year, $month, $day, $hour, $minute, $second, $e_code ) =
unpack ( "x1 A1 A4 x1 A2 x1 A2 x1 A2 x1 A2 x1 A2 A1", $line );

print $s_code . "\n";
print $year . "\n";
print $month . "\n";
print $day . "\n";
print $hour . "\n";
print $minute . "\n";
print $second . "\n";
print $e_code . "\n";

sleep 10; # so we can see it in the command window



In Perl this runs without trouble, in PHP it does not seem to work the same
way. Can someone explain to me what I need to do differently to
allow PHP to understand what I am trying to do!

<?

my $line = '!v2005*08|05+09?04^19*!';
  ^-- this will cause a parse error


$output = unpack ( "x1 A1 A4 x1 A2 x1 A2 x1 A2 x1 A2 x1 A2 A1", $line );

print_r ( $output );

?>

I have next no knowledge wroth speaking of concerning binary data - and the
string screw problem mentioned above makes it impossible for me to determine whether
I am really on the right path here but take a look at the following:

$line = "!v2005*08|05+09?0419*!";
$output  = unpack ( "x1 A1 A4 x1 A2 x1 A2 x1 A2 x1 A2 x1 A2 A1", $line );
$output2 = unpack ( "x1A1A4x1A2x1A2x1A2x1A2x1A2A1", $line );
$output3 = unpack ( "x1/A1/A4/x1/A2/x1/A2/x1/A2/x1/A2/x1/A2/A1", $line );
$output4 = unpack ( "x1_a/A1_b/A4_c/x1_d/A2_e/x1_f/A2_g/x1_h/A2_i/x1_j/A2_k/x1_l/A2_m/A1_n", $line );
var_dump( $output, $output2, $output3, $output4 );'

this page:
http://nl2.php.net/unpack

... does mention that the php unpack() implementation is somewhat different to the perl one
(btw I'm a complete perl luddite! - I don't think my brain can cope with that much cryptic crap
;-) - that said thank Larry for PCRE!)

I'd be very grateful if you report back on your progress - I for one can definitely learn something
here!

rgds,
jochem

ps - welcome to phpland perlie ;-)



Thanks

SD


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux