1. GB2312 文字をインターセプトする関数
PHP コード
コードをコピー コードは次のとおりです:
//中国語の文字列をインターセプト
function mysubstr($str, $start, $ len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i <$strlen; $i++) {
if(ord(substr($str, $ i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2)
} else
$tmpstr($str, $i, 1);
}
return $tmpstr;
}
?>
2. utf8 でエンコードされたマルチバイト文字列をインターセプト
PHP コードをコピーします
コードは次のとおりです。
< ; ?php //utf8 文字列をインターセプト function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF] +) {0,'.$from.'}'.
'((?:[x00-xFF]|[x80-xBF]+){0,'.$len.'})。 *# s',
'$1',$str);
}
?> :
/*
Utf-8 および gb2312 でサポートされる漢字インターセプト関数
cut_str(string, インターセプト長,開始長、エンコーディング);
デフォルトのエンコーディングは utf-8 です
デフォルトの開始長は 0 です
*/ function 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))."...";
return join('', array_slice($t_string[0], $start, $sublen));
else
{
$start = $start*2;
$strlen = strlen ($string);
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.= "..."; "abcd は文字列をインターセプトする必要があります";
echo Cut_str($str, 8, 0, 'gb2312'); > BugFree の文字インターセプト関数
コードをコピーします。
コードは次のとおりです:
/**
* @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
{
while ($I {
$StringTMP = substr($String,$I,1) ; if ( ord($StringTMP) >=224 )
{
$StringTMP = substr( $String,$I,3)
$I = $I + 3; >=192 )
{ $StringTMP = substr($String,$I,2); $I = $I + 2; } $I = $I + 1; StringLast[] = $StringTMP
}
$StringLast = implode("",$StringLast);
{
$StringLast .= "...";
}
$String = "book.chinaz.com -- ウェブマスター ライブラリ、ウェブマスター チュートリアル ";
$Length = "18";
$Append = false;
?>
http://www.bkjia.com/PHPjc/321281.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/321281.html技術記事 1. GB2312 文字をインターセプトするために使用される関数 PHP コードは次のようにコピーされます。 ?php //中国語の文字列をインターセプトする関数 mysubstr($str, $start, $len) { $tmpstr = ""; ;...