ホームページ >php教程 >php手册 >PHP インターセプト文字列関数のソート (gb2312 および utf-8 をサポート)

PHP インターセプト文字列関数のソート (gb2312 および utf-8 をサポート)

WBOY
WBOYオリジナル
2016-06-13 12:18:51901ブラウズ

1. GB2312 文字をインターセプトするために使用される関数

PHP コード

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


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


2. utf8 でエンコードされたマルチバイト文字列



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

//utf8 文字列をインターセプト
function utf8Substr( $str, $from, $len)
{
return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF] ){0,'. $from. '}'.
'((?:[x00-x7F]|[xC0-xFF][x80-xBF] ){0,'.$len.'}).*#s',
' $1',$str);
}
?>


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


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

/*
Utf-8、gb2312 でサポートされている中国語文字インターセプト関数
cut_str (文字列、インターセプト長、開始長、エンコーディング);
デフォルトのエンコーディングは 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);
$tmpstr = ''; 🎜>for($i= 0; $i{
if($i>=$start && $i{
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 は文字列をインターセプトする必要があります";
echo Cut_str($str, 8, 0, 'gb2312');


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


PHP コード



コードをコピー


コードは次のとおりです:
/**
* @package BugFree

* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ * * * Return文字列の一部(substr()関数を拡張) *

* @author Chunsheng Wang

* @param string $String 切り取る文字列。
* @param int $Length 返される文字列の長さ。
* @param booble $Append "..." を追加するかどうか: false|true
* @return string 切り取られた文字列。
*/
function sysSubStr($String,$Length,$Append = false)
{
if (strlen($String) )
{
return $String;
{
$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);
$I = $I 2;
else
{
$I = $I 1;
$StringLast[] = $StringTMP;
$StringLast = implode("",$StringLast);
if($Append)
{
$StringLast .= "..."; >}
return $StringLast;
}
}

$String = "book.chinaz.com -- ウェブマスター ライブラリ、ウェブマスター チュートリアル"; ;
$Append = false;
エコー sysSubStr($String,$Length,$Append);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。