Maison  >  Article  >  développement back-end  >  Interception personnalisée PHP de la version chinoise string-utf8

Interception personnalisée PHP de la version chinoise string-utf8

高洛峰
高洛峰original
2017-03-25 13:47:581282parcourir

Tout d'abord, veuillez noter : il existe actuellement de nombreux codes pour ce problème sur Internet, mais beaucoup d'entre eux sont copiés et collés sans ma propre pratique, et le code présente des problèmes logiques. Le code suivant est écrit par. moi-même.

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;
  }

Pour plus d'articles sur l'interception personnalisée php des chaînes chinoises-utf8, veuillez faire attention au site Web PHP chinois !

Articles associés :

Une petite fonction qui insère une chaîne à une position spécifiée dans la chaîne

Conseils de développement PHP (10) - Chinois Comment implémenter l'interception de chaîne sans caractères tronqués

Explication détaillée du code de la formule de calcul du format de chaîne via eval en php

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