diff options
Diffstat (limited to 'engine/lib/mb_wrapper.php')
| -rw-r--r-- | engine/lib/mb_wrapper.php | 233 | 
1 files changed, 233 insertions, 0 deletions
| diff --git a/engine/lib/mb_wrapper.php b/engine/lib/mb_wrapper.php new file mode 100644 index 000000000..68fa69005 --- /dev/null +++ b/engine/lib/mb_wrapper.php @@ -0,0 +1,233 @@ +<?php + +// if mb functions are available, set internal encoding to UTF8 +if (is_callable('mb_internal_encoding')) { +	mb_internal_encoding("UTF-8"); +	ini_set("mbstring.internal_encoding", 'UTF-8'); +} + +/** + * Parses a string using mb_parse_str() if available. + * NOTE: This differs from parse_str() by returning the results + * instead of placing them in the local scope! + * + * @param string $str The string + * + * @return array + * @since 1.7.0 + */ +function elgg_parse_str($str) { +	if (is_callable('mb_parse_str')) { +		mb_parse_str($str, $results); +	} else { +		parse_str($str, $results); +	} + +	return $results; +} + + + +/** + * Wrapper function for mb_split(). Falls back to split() if + * mb_split() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_split() { +	$args = func_get_args(); +	if (is_callable('mb_split')) { +		return call_user_func_array('mb_split', $args); +	} +	return call_user_func_array('split', $args); +} + +/** + * Wrapper function for mb_stristr(). Falls back to stristr() if + * mb_stristr() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_stristr() { +	$args = func_get_args(); +	if (is_callable('mb_stristr')) { +		return call_user_func_array('mb_stristr', $args); +	} +	return call_user_func_array('stristr', $args); +} + +/** + * Wrapper function for mb_strlen(). Falls back to strlen() if + * mb_strlen() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_strlen() { +	$args = func_get_args(); +	if (is_callable('mb_strlen')) { +		return call_user_func_array('mb_strlen', $args); +	} +	return call_user_func_array('strlen', $args); +} + +/** + * Wrapper function for mb_strpos(). Falls back to strpos() if + * mb_strpos() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_strpos() { +	$args = func_get_args(); +	if (is_callable('mb_strpos')) { +		return call_user_func_array('mb_strpos', $args); +	} +	return call_user_func_array('strpos', $args); +} + +/** + * Wrapper function for mb_strrchr(). Falls back to strrchr() if + * mb_strrchr() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_strrchr() { +	$args = func_get_args(); +	if (is_callable('mb_strrchr')) { +		return call_user_func_array('mb_strrchr', $args); +	} +	return call_user_func_array('strrchr', $args); +} + +/** + * Wrapper function for mb_strripos(). Falls back to strripos() if + * mb_strripos() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return int + * @since 1.7.0 + */ +function elgg_strripos() { +	$args = func_get_args(); +	if (is_callable('mb_strripos')) { +		return call_user_func_array('mb_strripos', $args); +	} +	return call_user_func_array('strripos', $args); +} + +/** + * Wrapper function for mb_strrpos(). Falls back to strrpos() if + * mb_strrpos() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return int + * @since 1.7.0 + */ +function elgg_strrpos() { +	$args = func_get_args(); +	if (is_callable('mb_strrpos')) { +		return call_user_func_array('mb_strrpos', $args); +	} +	return call_user_func_array('strrpos', $args); +} + +/** + * Wrapper function for mb_strstr(). Falls back to strstr() if + * mb_strstr() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return bool + * @since 1.7.0 + */ +function elgg_strstr() { +	$args = func_get_args(); +	if (is_callable('mb_strstr')) { +		return call_user_func_array('mb_strstr', $args); +	} +	return call_user_func_array('strstr', $args); +} + +/** + * Wrapper function for mb_strtolower(). Falls back to strtolower() if + * mb_strtolower() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_strtolower() { +	$args = func_get_args(); +	if (is_callable('mb_strtolower')) { +		return call_user_func_array('mb_strtolower', $args); +	} +	return call_user_func_array('strtolower', $args); +} + +/** + * Wrapper function for mb_strtoupper(). Falls back to strtoupper() if + * mb_strtoupper() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_strtoupper() { +	$args = func_get_args(); +	if (is_callable('mb_strtoupper')) { +		return call_user_func_array('mb_strtoupper', $args); +	} +	return call_user_func_array('strtoupper', $args); +} + +/** + * Wrapper function for mb_substr_count(). Falls back to substr_count() if + * mb_substr_count() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return int + * @since 1.7.0 + */ +function elgg_substr_count() { +	$args = func_get_args(); +	if (is_callable('mb_substr_count')) { +		return call_user_func_array('mb_substr_count', $args); +	} +	return call_user_func_array('substr_count', $args); +} + +/** + * Wrapper function for mb_substr(). Falls back to substr() if + * mb_substr() isn't available.  Parameters are passed to the + * wrapped function in the same order they are passed to this + * function. + * + * @return string + * @since 1.7.0 + */ +function elgg_substr() { +	$args = func_get_args(); +	if (is_callable('mb_substr')) { +		return call_user_func_array('mb_substr', $args); +	} +	return call_user_func_array('substr', $args); +} | 
