[geeklog-devel] [geeklog-cvs] Geeklog-1.x/system/classes/authentication LDAP.auth.class.php, NONE, 1.1

Joe Mucchiello joe at ThrowingDice.com
Thu May 1 15:47:34 EDT 2008


At 03:27 PM 5/1/2008, Dirk Haun wrote:

> function ascii2hex($ascii)

> {

> /* Adapted from function courtesy kuukelekuu at gmail dot com,

> * from http://www.thescripts.com/forum/thread519762.html

> */

> $hex = '';

>

> for ($i = 0; $i < strlen($ascii); $i++) {

> $byte = strtolower(dechex(ord($ascii{$i})));

> $byte = str_repeat('0', 2 - strlen($byte)) . $byte;

> $hex .= $byte;

> }

>

> return $hex;

> }


You should not use {$i} to subscript a string since according to the
PHP manual:

Note: <http://us.php.net/manual/en/language.types.string.php>Strings
may also be accessed using braces, as in $str{42}, for the same
purpose. However, this syntax is deprecated as of PHP 6. Use square
brackets instead.

Is there some reason this is not just a call to binhex()?

If there is, this saves a lot of calls to strlen/str_repeat and strtolower.
$hex = '';
$len = strlen($ascii);
for ($i = 0; $i < $len; ++$i) {
$hex .= str_pad(dechex(ord($ascii[$i])), '0', 2, STR_PAD_LEFT);
}
return strtolower($hex);

I realize this is adapted code. But during adaptation, one should cut
down on the cruft of older versions.

----
Joe Mucchiello
Throwing Dice Games
http://www.throwingdice.com




More information about the geeklog-devel mailing list