Using PHP/4.2.2 & Apache/1.3.26 on Linux 2.4.17

I'm trying to format a HEX value into an 8-byte string, that is
zero-padded to the left, using sprintf().  Simple enough.

$sprintf( "%08x", "fa23d" );
This should return "000fa23d".  But it returns "00000000".

Since that doesn't work, I'm using this:
$sprintf( "%08s", "fa23d" );
Which returns the value I expected from the earlier case.  But I'd rather
the earlier case work the way it's supposed to.

Has anyone else seen this behavior from sprintf() w/ hex types, or can ya
point out something errant in my usage?  If not ... it's going into the
bug system.  I haven't seen anything open in there about this oddity.
There's some test code below the .sig if anyone wants to try it out.

        THX,
        ~Chris


<?php

$myDec = 1024573;
$myHex = dechex( $myDec ); // "fa23d"
$myFormattedHex1 = sprintf( "%08x", $myHex ); // should be "000fa23d"
$myFormattedHex2 = sprintf( "%08s", $myHex );

header( "Content-type: text/plain" );

print <<<TXT1
Decimal: ${myDec}
Hex: ${myHex}
Formatted Hex (%08x): ${myFormattedHex1}
Formatted Hex (%08s): ${myFormattedHex2}
TXT1;

?>


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

Reply via email to