ホームページ  >  記事  >  バックエンド開発  >  PHP中国語処理関数_PHPチュートリアル

PHP中国語処理関数_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 10:59:55739ブラウズ

/*
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 を返します;
}
?>

http://www.bkjia.com/PHPjc/445582.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/445582.html技術記事 /* PHP は ISO-8859-1 を使用して文字列を処理します。これは、文字列がシングルバイトで処理されることを意味します。中国語コードはマルチバイト文字であり、substr、strlen、str_peplace などの関数を使用するとエラーが発生しやすくなります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。