/[LeafOK_CVS]/fenglin/lib/str_process.inc.php
ViewVC logotype

Diff of /fenglin/lib/str_process.inc.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.20 by sysadm, Wed Jul 2 02:00:57 2025 UTC Revision 1.21 by sysadm, Sat Oct 18 14:15:35 2025 UTC
# Line 10  function str_length(string $str) : int Line 10  function str_length(string $str) : int
10    
11                  // Process UTF-8 Chinese characters                  // Process UTF-8 Chinese characters
12                  $v1 = ord($c);                  $v1 = ord($c);
13                  if ($v1 & 0b10000000) //head of multi-byte character                  if ($v1 & 0x80) //head of multi-byte character
14                  {                  {
15                          $v2 = ($v1 & 0b01110000) << 1;                          $v2 = ($v1 & 0x70) << 1;
16                          while ($v2 & 0b10000000)                          while ($v2 & 0x80)
17                          {                          {
18                                  $i++;                                  $i++;
19                                  $c .= $str[$i];                                  $c .= $str[$i];
20                                  $v2 = ($v2 & 0b01111111) << 1;                                  $v2 = ($v2 & 0x7f) << 1;
21                          }                          }
22    
23                          $ret += 2;                          $ret += 2;
# Line 72  function split_line(string $str, string Line 72  function split_line(string $str, string
72    
73                  // Process UTF-8 Chinese characters                  // Process UTF-8 Chinese characters
74                  $v1 = ord($c);                  $v1 = ord($c);
75                  if ($v1 & 0b10000000) //head of multi-byte character                  if ($v1 & 0x80) //head of multi-byte character
76                  {                  {
77                          $v2 = ($v1 & 0b01110000) << 1;                          $v2 = ($v1 & 0x70) << 1;
78                          while ($v2 & 0b10000000)                          while ($v2 & 0x80)
79                          {                          {
80                                  $i++;                                  $i++;
81                                  $c .= $str[$i];                                  $c .= $str[$i];
82                                  $v2 = ($v2 & 0b01111111) << 1;                                  $v2 = ($v2 & 0x7f) << 1;
83                          }                          }
84    
85                          // Each UTF-8 CJK character should use two character length for display                          // Each UTF-8 CJK character should use two character length for display


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1