この関数は正規表現を巧みに使用しており、substr の使用法と同様に、順方向または逆方向でインターセプトできるため、このアイデアは学ぶ価値があります。
function c_substr ( $string, $from, $length = null ){
preg_match_all ( '/[x80-xff]?./', $string, $match );
if ( is_null ( $length )) {
$result = implode ( , $length ));
return $result;
$from = 3; = 7;
echo (c_sub str ($str, $from, $length ));
// 出力: n Chinese min total
// utf-8 もあります
UTF-を処理する Windix の関数について8 文字列:
正規表現で「u」修飾子を使用すると、パターン文字列が UTF-8 として扱われるようにできます
(Unix では PHP 4.1.0 以降、win32 では PHP 4.2.3 から利用可能)
このように、関数は他のエンコーディングでも機能します (ギリシャ語など)
変更された関数は次のようになります:
$null = "";
preg_match_all ( "/./u", $str, $ar );
if ( func_num_args () >= 3 ) {
$end = func_get_arg ( 2 );
return join ( $null, array_slice ( $ar [ 0 ], $start, $end )) ;
} else {
を通じて を通じてアウト アウト アウト スルー アウト スルー アウト オフ ‐ ‐ ‐ ‐ ‐‐ r‐‐‐‐そして