From 0b221e8945ae785dc706d8ea9a9e8e25532c0096 Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 28 Jun 2011 21:11:52 -0700 Subject: bug #96 move libraries to library - better alignment of like rotator --- library/phpsec/PHP/Compat/Function/array_fill.php | 43 +++++++++++++++ library/phpsec/PHP/Compat/Function/bcpowmod.php | 67 +++++++++++++++++++++++ library/phpsec/PHP/Compat/Function/str_split.php | 59 ++++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 library/phpsec/PHP/Compat/Function/array_fill.php create mode 100644 library/phpsec/PHP/Compat/Function/bcpowmod.php create mode 100644 library/phpsec/PHP/Compat/Function/str_split.php (limited to 'library/phpsec/PHP/Compat/Function') diff --git a/library/phpsec/PHP/Compat/Function/array_fill.php b/library/phpsec/PHP/Compat/Function/array_fill.php new file mode 100644 index 000000000..e02bfa14d --- /dev/null +++ b/library/phpsec/PHP/Compat/Function/array_fill.php @@ -0,0 +1,43 @@ +, Arpad Ray + * @link http://php.net/function.array_fill + * @author Jim Wigginton + * @version $Revision: 1.1 $ + * @since PHP 4.2.0 + */ +function php_compat_array_fill($start_index, $num, $value) +{ + if ($num <= 0) { + user_error('array_fill(): Number of elements must be positive', E_USER_WARNING); + + return false; + } + + $temp = array(); + + $end_index = $start_index + $num; + for ($i = (int) $start_index; $i < $end_index; $i++) { + $temp[$i] = $value; + } + + return $temp; +} + +// Define +if (!function_exists('array_fill')) { + function array_fill($start_index, $num, $value) + { + return php_compat_array_fill($start_index, $num, $value); + } +} + +?> \ No newline at end of file diff --git a/library/phpsec/PHP/Compat/Function/bcpowmod.php b/library/phpsec/PHP/Compat/Function/bcpowmod.php new file mode 100644 index 000000000..6ec1b1840 --- /dev/null +++ b/library/phpsec/PHP/Compat/Function/bcpowmod.php @@ -0,0 +1,67 @@ +, Arpad Ray + * @link http://php.net/function.bcpowmod + * @author Sara Golemon + * @version $Revision: 1.1 $ + * @since PHP 5.0.0 + * @require PHP 4.0.0 (user_error) + */ +function php_compat_bcpowmod($x, $y, $modulus, $scale = 0) +{ + // Sanity check + if (!is_scalar($x)) { + user_error('bcpowmod() expects parameter 1 to be string, ' . + gettype($x) . ' given', E_USER_WARNING); + return false; + } + + if (!is_scalar($y)) { + user_error('bcpowmod() expects parameter 2 to be string, ' . + gettype($y) . ' given', E_USER_WARNING); + return false; + } + + if (!is_scalar($modulus)) { + user_error('bcpowmod() expects parameter 3 to be string, ' . + gettype($modulus) . ' given', E_USER_WARNING); + return false; + } + + if (!is_scalar($scale)) { + user_error('bcpowmod() expects parameter 4 to be integer, ' . + gettype($scale) . ' given', E_USER_WARNING); + return false; + } + + $t = '1'; + while (bccomp($y, '0')) { + if (bccomp(bcmod($y, '2'), '0')) { + $t = bcmod(bcmul($t, $x), $modulus); + $y = bcsub($y, '1'); + } + + $x = bcmod(bcmul($x, $x), $modulus); + $y = bcdiv($y, '2'); + } + + return $t; +} + + +// Define +if (!function_exists('bcpowmod')) { + function bcpowmod($x, $y, $modulus, $scale = 0) + { + return php_compat_bcpowmod($x, $y, $modulus, $scale); + } +} +?> \ No newline at end of file diff --git a/library/phpsec/PHP/Compat/Function/str_split.php b/library/phpsec/PHP/Compat/Function/str_split.php new file mode 100644 index 000000000..8e38bdb89 --- /dev/null +++ b/library/phpsec/PHP/Compat/Function/str_split.php @@ -0,0 +1,59 @@ +, Arpad Ray + * @link http://php.net/function.str_split + * @author Aidan Lister + * @version $Revision: 1.1 $ + * @since PHP 5 + * @require PHP 4.0.0 (user_error) + */ +function php_compat_str_split($string, $split_length = 1) +{ + if (!is_scalar($split_length)) { + user_error('str_split() expects parameter 2 to be long, ' . + gettype($split_length) . ' given', E_USER_WARNING); + return false; + } + + $split_length = (int) $split_length; + if ($split_length < 1) { + user_error('str_split() The length of each segment must be greater than zero', E_USER_WARNING); + return false; + } + + // Select split method + if ($split_length < 65536) { + // Faster, but only works for less than 2^16 + preg_match_all('/.{1,' . $split_length . '}/s', $string, $matches); + return $matches[0]; + } else { + // Required due to preg limitations + $arr = array(); + $idx = 0; + $pos = 0; + $len = strlen($string); + + while ($len > 0) { + $blk = ($len < $split_length) ? $len : $split_length; + $arr[$idx++] = substr($string, $pos, $blk); + $pos += $blk; + $len -= $blk; + } + + return $arr; + } +} + + +// Define +if (!function_exists('str_split')) { + function str_split($string, $split_length = 1) + { + return php_compat_str_split($string, $split_length); + } +} -- cgit v1.2.3