ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで中国語の文字列をインターセプトするためのコードの概要

PHP_PHP チュートリアルで中国語の文字列をインターセプトするためのコードの概要

WBOY
WBOYオリジナル
2016-07-21 15:27:22714ブラウズ

文字列インターセプトは非常に一般的なプログラミング タスクであり、漢字を使用した文字列インターセプトがよく使用されます。難しくはありませんが、関数を自分で書くのは時間がかかります。ここでは、基本的なニーズを満たすことができる、比較的使いやすい文字列インターセプト関数を紹介します。

1. GB2312 中国語文字列をインターセプトします

コードをコピーします コードは次のとおりです:

< ?php
//中国語文字列をインターセプト
function mysubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i <$strlen; $i++) {
if(substr($str, $i, 1 )) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$tmpstr .= substr($i, 1); return $tmpstr;
}
?>



2. utf8 でエンコードされたマルチバイト文字列をインターセプトします

コードは次のとおりです:
< /インターセプトutf8文字列 function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$ .'}' から。'((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',
'$1 ' ,$str);
}
?>



3. UTF-8 および GB2312 でサポートされる漢字インターセプト関数



コードは次のとおりです。 php
/*
Utf-8 と gb2312 の両方でサポートされている漢字インターセプト関数
cut_str(string, インターセプト長, 開始長, エンコーディング); デフォルトのエンコーディングは utf-8 です
デフォルトの開始長は 0 です
*/
関数cut_str($string, $sublen, $start = 0, $code = 'UTF-8') { if($code == 'UTF-8') { $pa = "/[x01-x7f ]|[xc2-xdf ][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80- xbf][x80-xbf ]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($ t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..."; $t_string[0], $start, $sublen));
}
$start = $start*2;
$strlen = strlen($string); tmpstr = '';
for($i< $strlen; $i++)
{
if($i>=$start && $i< ($start+$sublen))
{
if(ord) (substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2)
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++
}
if(strlen($tmpstr)< $strlen ) $tmpstr .= "... ";
return $tmpstr;
}
}
$str = "abcd は文字列をインターセプトする必要があります";



4. BugFree の文字インターセプト関数



コードをコピーします:


< ?php
/**
* @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
*
*
* 文字列の一部を返す(関数 substr( ))
*
* @著者 Chunsheng Wang
* @param string $String 切り取る文字列。
* @param int $Length 返される文字列の長さ。
* @param booble $Append "..." を追加するかどうか: false|true
* @return string 切り取られた文字列。
*/ function sysSubStr($String,$Length ,$Append = false)
{
if (strlen($String) < = $Length )
{ return $String; } else {
$I = 0; )
{
$StringTMP = substr ($String,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3); I = $I + 3;
elseif( ord($StringTMP) >=192 )
$StringTMP = substr($String,$I,2);
else
{
$I = $I + 1;
}
$StringLast[] = $StringTMP;
$StringLast = implode("",$StringLast)
{
$StringLast .= "...";
return $StringLast;
}
}
$String = "17test.info は中国の自動テストの最前線にあります"; false;
echo sysSubStr($String,$Length,$Append)

;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/323809.html技術記事文字列インターセプトは非常に一般的なプログラミング タスクであり、漢字を使用した文字列インターセプトがよく使用されます。難しくはありませんが、関数を自分で書くのは時間がかかります。 ここで紹介します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。