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:
Detaillierte Codeerklärung der Berechnungsformel für das Zeichenfolgenformat durch Auswertung in PHP