/*
PHP は ISO-8859-1 を使用して文字列を処理します。これは、文字列がシングルバイトで処理されることを意味します。 substr,
を使用する場合、中国語コードはマルチバイト文字です。
strlen、str_peplace などの関数を使用すると、エラーが発生しやすくなります。中国語の特殊な操作を処理するには、一連の中国語の処理関数を使用する必要があります。以下は
GBK の substr と strlen 演算関数、前者は開始値と長さとして負の数値を使用できる PHP の substr とは異なります。
これらの機能を継続的に改善し、高い効率と実用性を実現します。
*/
//gbk str ハンドル
関数 gbk_substr(&$str,$start,$length=-1)
{
if($length==0) return "";
if($start
for($i=0;$i
{
if(ord(substr($str,$i,1))>=0x81)
{
$start++;
$i++;
}
}
if($start>gbk_strlen($str)) return "";
$ss="";
if($length==-1)
{
$ss=substr($str,$start);
}
それ以外
{
echo "長さ=".$長さ"";
for($i=$start;$i
{
if(ord(substr($str,$i,1))>=0x81)
{
$ss.=substr($str,$i,2);
$length++;
$i++;
}
それ以外
{
$ss.=substr($str,$i,1);
}
}
}
$ss を返します;
}
関数gbk_strlen(&$str)
{
$len=strlen($str);
$l=0;
for($i=0;$i
{
if(ord(substr($str,$i,1))>=0x81) $i++;
$l++;
}
$l を返します;
}
関数 gb2312_strlen(&$str)
{
$len=strlen($str);
$l=0;
for($i=0;$i
{
if(ord(substr($str,$i,1))>=0xa1) $i++;
$l++;
}
$l を返します;
}
?>