Maison  >  Article  >  développement back-end  >  PHP implémente une interception personnalisée de la version Chinese Strings-utf8

PHP implémente une interception personnalisée de la version Chinese Strings-utf8

墨辰丷
墨辰丷original
2018-05-25 11:58:061750parcourir

Cet article présente principalement la méthode d'interception personnalisée des chaînes chinoises en PHP, qui a une très bonne valeur de référence. Regardons-la avec l'éditeur

Tout d'abord, il y en a beaucoup. codes pour ce problème sur Internet, mais beaucoup d'entre eux sont copiés et collés sans pratique par moi-même, et le code a des problèmes de logique.

Pas grand chose à dire

/**
   * 该函数是对于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;
  }

Ce qui précède est tout le contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun.


Recommandations associées :

Comment générer un ou plusieurs groupes de chaînes aléatoires en php

php preg_match matchstringlongueur de l'analyse de la casse

PHP preg_match matchstringExplication détaillée de pas de longueur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn