|
|
|
@ -185,7 +185,6 @@ function json_serialize($var)
|
|
|
|
|
return $var ? '1' : '0';
|
|
|
|
|
else
|
|
|
|
|
return "'".JQ($var)."'";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -209,9 +208,9 @@ function array2js($arr, $type='')
|
|
|
|
|
*/
|
|
|
|
|
function in_array_nocase($needle, $haystack)
|
|
|
|
|
{
|
|
|
|
|
$needle = rc_strtolower($needle);
|
|
|
|
|
$needle = mb_strtolower($needle);
|
|
|
|
|
foreach ($haystack as $value)
|
|
|
|
|
if ($needle===rc_strtolower($value))
|
|
|
|
|
if ($needle===mb_strtolower($value))
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
@ -338,81 +337,11 @@ function make_absolute_url($path, $base_url)
|
|
|
|
|
return $abs_path;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for strlen
|
|
|
|
|
*/
|
|
|
|
|
function rc_strlen($str)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('mb_strlen'))
|
|
|
|
|
return mb_strlen($str);
|
|
|
|
|
else
|
|
|
|
|
return strlen($str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for strtolower
|
|
|
|
|
*/
|
|
|
|
|
function rc_strtolower($str)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('mb_strtolower'))
|
|
|
|
|
return mb_strtolower($str);
|
|
|
|
|
else
|
|
|
|
|
return strtolower($str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for strtoupper
|
|
|
|
|
*/
|
|
|
|
|
function rc_strtoupper($str)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('mb_strtoupper'))
|
|
|
|
|
return mb_strtoupper($str);
|
|
|
|
|
else
|
|
|
|
|
return strtoupper($str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for substr
|
|
|
|
|
*/
|
|
|
|
|
function rc_substr($str, $start, $len=null)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('mb_substr'))
|
|
|
|
|
return mb_substr($str, $start, $len);
|
|
|
|
|
else
|
|
|
|
|
return substr($str, $start, $len);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for strpos
|
|
|
|
|
*/
|
|
|
|
|
function rc_strpos($haystack, $needle, $offset=0)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('mb_strpos'))
|
|
|
|
|
return mb_strpos($haystack, $needle, $offset);
|
|
|
|
|
else
|
|
|
|
|
return strpos($haystack, $needle, $offset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for strrpos
|
|
|
|
|
*/
|
|
|
|
|
function rc_strrpos($haystack, $needle, $offset=0)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('mb_strrpos'))
|
|
|
|
|
return mb_strrpos($haystack, $needle, $offset);
|
|
|
|
|
else
|
|
|
|
|
return strrpos($haystack, $needle, $offset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper function for wordwrap
|
|
|
|
|
*/
|
|
|
|
|
function rc_wordwrap($string, $width=75, $break="\n", $cut=false)
|
|
|
|
|
{
|
|
|
|
|
if (!function_exists('mb_substr') || !function_exists('mb_strlen'))
|
|
|
|
|
return wordwrap($string, $width, $break, $cut);
|
|
|
|
|
|
|
|
|
|
$para = explode($break, $string);
|
|
|
|
|
$string = '';
|
|
|
|
|
while (count($para)) {
|
|
|
|
@ -478,30 +407,6 @@ function rc_request_header($name)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Replace the middle part of a string with ...
|
|
|
|
|
* if it is longer than the allowed length
|
|
|
|
|
*
|
|
|
|
|
* @param string Input string
|
|
|
|
|
* @param int Max. length
|
|
|
|
|
* @param string Replace removed chars with this
|
|
|
|
|
* @return string Abbreviated string
|
|
|
|
|
*/
|
|
|
|
|
function abbreviate_string($str, $maxlength, $place_holder='...')
|
|
|
|
|
{
|
|
|
|
|
$length = rc_strlen($str);
|
|
|
|
|
$first_part_length = floor($maxlength/2) - rc_strlen($place_holder);
|
|
|
|
|
|
|
|
|
|
if ($length > $maxlength)
|
|
|
|
|
{
|
|
|
|
|
$second_starting_location = $length - $maxlength + $first_part_length + 1;
|
|
|
|
|
$str = rc_substr($str, 0, $first_part_length) . $place_holder . rc_substr($str, $second_starting_location, $length);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Make sure the string ends with a slash
|
|
|
|
|
*/
|
|
|
|
@ -579,6 +484,29 @@ function get_offset_time($offset_str, $factor=1)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Replace the middle part of a string with ...
|
|
|
|
|
* if it is longer than the allowed length
|
|
|
|
|
*
|
|
|
|
|
* @param string Input string
|
|
|
|
|
* @param int Max. length
|
|
|
|
|
* @param string Replace removed chars with this
|
|
|
|
|
* @return string Abbreviated string
|
|
|
|
|
*/
|
|
|
|
|
function abbreviate_string($str, $maxlength, $place_holder='...')
|
|
|
|
|
{
|
|
|
|
|
$length = mb_strlen($str);
|
|
|
|
|
$first_part_length = floor($maxlength/2) - mb_strlen($place_holder);
|
|
|
|
|
|
|
|
|
|
if ($length > $maxlength)
|
|
|
|
|
{
|
|
|
|
|
$second_starting_location = $length - $maxlength + $first_part_length + 1;
|
|
|
|
|
$str = mb_substr($str, 0, $first_part_length) . $place_holder . mb_substr($str, $second_starting_location, $length);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A method to guess the mime_type of an attachment.
|
|
|
|
|
*
|
|
|
|
@ -683,4 +611,51 @@ function rcube_explode_quoted_string($delimiter, $string)
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* mbstring replacement functions
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
if (!function_exists('mb_strlen')) {
|
|
|
|
|
function mb_strlen($str)
|
|
|
|
|
{
|
|
|
|
|
return strlen($str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists('mb_strtolower')) {
|
|
|
|
|
function mb_strtolower($str)
|
|
|
|
|
{
|
|
|
|
|
return strtolower($str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists('mb_strtoupper')) {
|
|
|
|
|
function mb_strtoupper($str)
|
|
|
|
|
{
|
|
|
|
|
return strtoupper($str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists('mb_substr')) {
|
|
|
|
|
function mb_substr($str, $start, $len=null)
|
|
|
|
|
{
|
|
|
|
|
return substr($str, $start, $len);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists('mb_strpos')) {
|
|
|
|
|
function mb_strpos($haystack, $needle, $offset=0)
|
|
|
|
|
{
|
|
|
|
|
return strpos($haystack, $needle, $offset);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists('mb_strrpos')) {
|
|
|
|
|
function mb_strrpos($haystack, $needle, $offset=0)
|
|
|
|
|
{
|
|
|
|
|
return strrpos($haystack, $needle, $offset);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|
|
|
|
|