ホームページ  >  記事  >  バックエンド開発  >  中国語の文字列-utf8バージョンのPHPカスタムインターセプト

中国語の文字列-utf8バージョンのPHPカスタムインターセプト

高洛峰
高洛峰オリジナル
2017-03-25 13:47:581280ブラウズ

まず最初に説明します。現在、この問題に対するコードはインターネット上に多数ありますが、その多くは私自身が練習せずにコピーアンドペーストしたものであり、コードには論理的な問題があります。次のコードは私が書いたものです。 。

あまり言うことはありません

/**
   * 该函数是对于utf8编码
   * @author 2582308253@qq.com
   * @param string $str
   * @param int $start
   * @param int $length
   * @return string
   * @copyright 2017年2月27日下午1:46:10
   */
  function gbsubstr2($str, $start, $length) {
    $length = abs($length);
    $strLen = strlen($str);
    $len = $start + $length;
    $newStr = '';
    for($i = $start; $i < $len && $i < $strLen; $i++) {
      if(ord(substr($str, $i, 1)) > 0xa0) {
        //utf8编码中一个汉字是占据3个字节的,对于其他的编码的字符串,中文占据的字节各有不同,自己需要去修改这个数a
        $newStr .= substr($str, $i, 3);//此处a=3;
        $i+=2;
        $len += 2; //截取了三个字节之后,截取字符串的终止偏移量也要随着每次汉字的截取增加a-1;
      } else {
        $newStr .= substr($str, $i, 1);
      }
    }
    return $newStr;
  }

中国語文字列の PHP カスタム インターセプト - utf8 バージョン関連記事の詳細については、PHP 中国語 Web サイトに注目してください。

関連記事:

文字列の指定した位置に文字列を挿入する小さな関数

PHP開発スキル(10) - 中国語文字列を文字化けせずにインターセプトする方法

evalで文字を実装するPHP 文字列形式の計算式の詳細コード解説

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。