関数 _mb_substr()
定義ファイル :/blog/wp-includes/compat.php
組み込み関数mb_substr()を置き換える
設定(DBに設定済)の文字コードのゆれを吸収し、mb_substr()を実行する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | if ( !function_exists('mb_substr') ): function mb_substr( $str, $start, $length=null, $encoding=null ) { return _mb_substr($str, $start, $length, $encoding); } endif; function _mb_substr( $str, $start, $length=null, $encoding=null ) { // the solution below, works only for utf-8, so in case of a different // charset, just use built-in substr $charset = get_option( 'blog_charset' ); if ( !in_array( $charset, array('utf8', 'utf-8', 'UTF8', 'UTF-8') ) ) { return is_null( $length )? substr( $str, $start ) : substr( $str, $start, $length); } // use the regex unicode support to separate the UTF-8 characters into an array preg_match_all( '/./us', $str, $match ); $chars = is_null( $length )? array_slice( $match[0], $start ) : array_slice( $match[0], $start, $length ); return implode( '', $chars ); } |
mbstring は拡張モジュールです。デフォルトでは 有効にならないということです。
mb_substr() 文字列の一部を得る
get_option()
optionsデータベーステーブルから、指定したオプションの値を取得する安全な方法です。希望するオプションが存在しない場合は、値が関連付けされず、FALSE が返されます。
配列に値があるかチェックする in_array()
変数が NULL かどうか調べる is_null()
文字列の一部分を返す substr()
繰り返し正規表現検索を行う preg_match_all()
配列の一部を展開する array_slice()
配列要素を文字列により連結する implode()