note 43261 modified in function.base-convert by vrana
| From: | vrana@php.net | Date: | Tue, 17 Aug 2004 14:52:25 +0000 |
| Subject: | note 43261 modified in function.base-convert by vrana | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-80014@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.
<?php
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.
--was--
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.
http://php.net/manual/en/function.base-convert.php