Heim >Backend-Entwicklung >PHP-Tutorial >Benutzerdefiniertes PHP-Abfangen der chinesischen String-UTF8-Version

Benutzerdefiniertes PHP-Abfangen der chinesischen String-UTF8-Version

高洛峰
高洛峰Original
2017-03-25 13:47:581352Durchsuche

Bitte beachten Sie zunächst: Es gibt derzeit viele Codes für dieses Problem im Internet, aber viele davon werden ohne meine eigene Übung kopiert und eingefügt, und der Code weist logische Probleme auf. Der folgende Code wurde von geschrieben ich selbst.

Es gibt nicht viel zu sagen

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

Weitere Artikel zum benutzerdefinierten PHP-Abfangen chinesischer Strings und UTF8-Versionen finden Sie auf der chinesischen PHP-Website!

Verwandte Artikel:

Eine kleine Funktion, die eine Zeichenfolge an einer angegebenen Position in die Zeichenfolge einfügt

PHP-Entwicklungstipps (10) - Chinesisch So implementieren Sie das Abfangen von Zeichenfolgen ohne verstümmelte Zeichen

Detaillierte Codeerklärung der Berechnungsformel für das Zeichenfolgenformat durch Auswertung in PHP

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn