ホームページ >バックエンド開発 >PHPチュートリアル >PHP は文字列をインターセプトし、それぞれ GB2312 および UTF8 エンコードに適しています_PHP チュートリアル

PHP は文字列をインターセプトし、それぞれ GB2312 および UTF8 エンコードに適しています_PHP チュートリアル

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

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

コードをコピー コードは次のとおりです:
//中国語文字列をインターセプト
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)
} else
$tmpstr($str, $i, 1); 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);
}
& gt;



3. UTF-8、GB2312 での漢字インターセプト関数
コードを次のようにコード化します:


& lt;? -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))."..."; , $ sublen)); else $start = $start*2; $strlen = strlen($string); i= 0; $i{
if($i>=$start && $i{
if(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)}$str = "abcd は文字列をインターセプトする必要があります";



4.




コードをコピー

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


/**
* @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
*
*
* 文字列の一部を返す(関数 substr( ))
*
* @著者 Chunsheng Wang <[email]wwccss@263.net[/email]>
* @param string $String 切り取る文字列。
* @param int $Length 返される文字列の長さ。
* @param booble $Append "..." を追加するかどうか: false|true
* @return string 切り取られた文字列。
*/
function sysSubStr($String,$Length,$Append = false)
{
if (strlen($ String) {
return $String; else {
$I = 0;
while ($I { $StringTMP = substr($ String,$I ,1); if ( ord($StringTMP) >=224 ) $StringTMP = substr($String,$I,3); elseif( ord( $StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2)
$I = $I + 2
}
else
{
$I = $I; + 1;
$StringLast[] = $StringTMP;
$StringLast = implode("",$StringLast)
{
$StringLast .= "...";
$StringLast ;
}$String = "www.at0915.cn";
$Append = false; >





http://www.bkjia.com/PHPjc/319785.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/319785.html

技術記事

1. GB2312 中国語文字列コピー コードを次のようにインターセプトします。 ?php //中国語文字列関数 mysubstr($str, $start, $len) { $tmpstr = "" for( $ i = 0; $i...





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