note 43261 added to function.base-convert
| From: | simon at simonster dot com | Date: | Tue, 15 Jun 2004 22:05:46 +0000 |
| Subject: | note 43261 added to function.base-convert | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-71123@lists.php.net to get a copy of this message | ||
Here are some functions for converting integers to and from base 256. Converting to base 64 is
simple given these.
function to_base256($number, $from_base = 10) {
$binary_number = base_convert($number, $from_base, 2);
$final_string = "";
$new_length = (ceil(strlen($binary_number)/8)*8);
$binary_number = str_pad($binary_number, $new_length, "0", STR_PAD_LEFT);
for($i=($new_length-8); $i>=0; $i-=8) {
$final_string = chr(base_convert(substr($binary_number, $i, 8), 2, 10)).$final_string;
}
return $final_string;
}
function from_base256($string, $to_base = 10) {
$number = "";
for($i=0; $i<strlen($string); $i++) {
$number .= str_pad(base_convert(ord($string{$i}), 10, 2), 8, "0", STR_PAD_LEFT);
}
return base_convert($number, 2, $to_base);
}
Yes, I know that this would be more efficient if it used mod instead of base_convert, but it needs
to work with integers > 32 bits.
----
Manual Page -- http://www.php.net/manual/en/function.base-convert.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+43261
Delete -- http://master.php.net/manage/user-notes.php?action=delete+43261&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+43261&report=yes
Search -- http://master.php.net/manage/user-notes.php