ホームページ >バックエンド開発 >PHPチュートリアル >PHP は中国語文字列のカスタム インターセプトを実装します - utf8 バージョン

PHP は中国語文字列のカスタム インターセプトを実装します - utf8 バージョン

墨辰丷
墨辰丷オリジナル
2018-05-25 11:58:061803ブラウズ

この記事では主に PHP で中国語の文字列をカスタムインターセプトする方法を紹介します。非常に参考になるので、エディターで見てみましょう。

まず最初に注意してください。この問題はインターネット上にありますが、多くはコピーされたものであり、私自身は実践したことがなく、コードには論理的な問題があります。次のコードは私が書いたものです。

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

/**
   * 该函数是对于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 は、1 つ以上のランダムな 文字列のセットを生成するメソッドを実装します

php preg_match マッチング string length のケース分析

P HP preg_match マッチング 詳細文字列長さステップの説明

以上がPHP は中国語文字列のカスタム インターセプトを実装します - utf8 バージョンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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