123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- <?php
- /**
- * Elgg UTF-8 string functions
- *
- * @package Elgg
- * @subpackage Core
- */
- /**
- * 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);
- }
- return function(\Elgg\EventsService $events, \Elgg\HooksRegistrationService $hooks) {
- // if mb functions are available, set internal encoding to UTF8
- if (is_callable('mb_internal_encoding')) {
- mb_internal_encoding("UTF-8");
- if (version_compare('5.6.0', PHP_VERSION, '<')) {
- if (ini_get("mbstring.internal_encoding")) {
- ini_set("mbstring.internal_encoding", 'UTF-8');
- }
- }
- }
- };
|