| 1 | <?php |
| 2 | /** |
| 3 | * WordPress implementation for PHP functions missing from older PHP versions. |
| 4 | * |
| 5 | * @package PHP |
| 6 | * @access private |
| 7 | */ |
| 8 | |
| 9 | // Added in PHP 5.0 |
| 10 | |
| 11 | // If gettext isn't available |
| 12 | if ( !function_exists('_') ) { |
| 13 | function _($string) { |
| 14 | return $string; |
| 15 | } |
| 16 | } |
| 17 | |
| 18 | if ( !function_exists('mb_substr') ): |
| 19 | function mb_substr( $str, $start, $length=null, $encoding=null ) { |
| 20 | // the solution below, works only for utf-8, so in case of a different |
| 21 | // charset, just use built-in substr |
| 22 | $charset = get_option( 'blog_charset' ); |
| 23 | if ( !in_array( $charset, array('utf8', 'utf-8', 'UTF8', 'UTF-8') ) ) { |
| 24 | return is_null( $length )? substr( $str, $start ) : substr( $str, $start, $length); |
| 25 | } |
| 26 | // use the regex unicode support to separate the UTF-8 characters into an array |
| 27 | preg_match_all( '/./us', $str, $match ); |
| 28 | $chars = is_null( $length )? array_slice( $match[0], $start ) : array_slice( $match[0], $start, $length ); |
| 29 | return implode( '', $chars ); |
| 30 | } |
| 31 | endif; |