ホームページ > php教程 > php手册 > 中国語処理ツール機能一式の紹介

中国語処理ツール機能一式の紹介

WBOY
リリース: 2016-06-21 09:12:47
オリジナル
824 人が閲覧しました

機能|中国語

/* 中国語処理ツール関数
---スペース---
string GBspace(string) --------- 各漢字の間にスペースを追加します
string GBunspace(string) --- - --- 各漢字の間のスペースを削除します
String clear_space(string) ------- 余分なスペースを削除するために使用されます

--- 変換 ---
String GBcase(string,offset) - -- を変換します文字列の中国語と英語のキャラクターは大文字と小文字を "" ""小文字(strower) string) ----------- 检查文字符串内否有GB 字,有会返true,
否か则会返false
int GB_all( String) ------------ -- 文字列内のすべての文字に GB 文字が含まれているかどうかを確認するには true を返し、そうでない場合は false を返します
int gb_non (string) ------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------ ----- 文字列内のすべての文字が GB 文字ではないことを確認すると、True が返されます。それ以外の場合は、文字列が返されます。 false
int Gblen (String) ------------------ 文字列の長さを返します (漢字は 1 文字のみと数えます)

---検索、置換、抽出---
int/array gbpos(haystack、needle、[offset])----検索文字列(strpos)
オフセット:空白のまま -"a"の最初の出現を見つけます。配列を返します)

String GB_replace(needle, str, haystack) – 文字列を検索して置換します (str_replace)
String GB_replace_i(needle, str_f, str_b, haystack) – 大文字と小文字をチェックせずに文字列を検索して置換します
針 - 使用を使用して使用して使用して使用して使用して文字を使用して - - - - - - ‐---- - string gbsubstr(string、start、[length])で文字を見つける - 最初から最後まで抽出または抽出長さの文字列

B String GBSTRNEAR (String, LENGTH) - String から Length に最も近い文字列を抽出します。中 LENGTH の漢字は 2 文字を計算します。 ---- 注意 ----FORM から返された文字列を使用する場合は、文字列を渡し、Stripslashes () を通過して余分な文字列を削除してください。

使用法: 上記のツール機能を使用するには、元の PHP コードに
include ("GB.inc");
を追加します。
*/

function GBlen($string) {
$l = strlen($string);
$ptr = 0;
$a = 0;
while ($a < $l) {
$ch = substr ($string,$a,1);
& gt; = hexdec ("0x40")) {
$ Ptr ++;
$ a ++; ;
} // End While

Return $ ptr;
}

function GBsubstr($string,$start,$length) {
if (!is_int($length) && $length != "") {
return "エラー: 長さの値が間違っています (数値である必要があります) 。
";
} elseif ($length == "0") {
return "";
} else {
} else {
} else ;
$str_list = array();
$str_list2 = array(); 文字列, $ a+1,1);
if (または ch) && ork ($ ch2) & gt; = hexdec ("0x40") {
$ str_list [$ PTR ] = $a;
            $ptr++;
$a += 2;
} else {
$str_list[$ptr] = $a;
$str_list2[$ptr] = $a;
$ptr++;
$a++;
} // END IF
} // END WHILE

if ($start > $ptr || -$start > $ptr) {
return;
} elseif ($length == "") {
if ($start >= 0) { // (text,+)
return substr($string,$str_list[$start]);
} else { // (test,-)
return substr($string,$str_list[$ptr + $ start]);
}
} else {

if ($length > 0) { // $length > 0


if ($start >= 0) { // (text,+,+)
if (($start + $length) >= count($str_list2)) {
return substr($文字列、 $ str_list [$ start]);
} else {//(text、 +、 +)
$ end = $ str_list2 [$ start +($ length -1)] - $ str_list [$ start] +1; substr($string,$str_list[$start],$end);
}

} else { // (text ,-,+)
$start = $ptr + $start;
if (($start + $ length) >= count($str_list2)) {
return substr($string,$str_list[$start]);
} else {
$end = $str_list2[$start + ($length - 1) )] - $ str_list[$start] +1;
return substr($string,$str_list[$start],$end);
}
}

} else { // $length $end = strlen($string) - $str_list[$ptr+$length];
if ($start >= 0) { // (text,+,-) {
return substr($string,$str_list) [$start],-$end);
} else { //(text,-,-)
$start = $ptr + $start;
return substr($string,$str_list[$start],-$end );
}

} // 長さの終わり > /
}
} // END IF
}

function GB_replace($needle,$string,$haystack) {
$l = strlen($haystack);
    $l2 = strlen($needle);
$l3 = strlen($string);
$news = "";
$skip = 0;
$a = 0;
while ($a < $l) {
$ch = substr($haystack,$a,1);
$ch2 = substr($haystack,$a+1,1);
if (ord($ch) >= HexDec("0x81") && ord ($ch2) >= HexDec("0x40")) {
if (substr($haystack,$a,$l2) == $needle) {
$news .= $string;
$a += $l2 ;
} else {
$news .= $ch.$ch2;
$a += 2;
}
} else {
if (substr($haystack,$a,$l2) == $needle) {
$news .= $string;
$a += $l2;
} else {
$news .= $ch;
$a++;
}
} // END IF
} // END WHILE
return $news;
}

function GB_replace_i($needle,$str_f,$str_b,$haystack) {

$l = strlen($haystack);
$l2 = strlen($needle);
$l3 = strlen($string) ;
$news = "";
$skip = 0;
$a = 0;
while ($a < $l) {
$ch = substr($haystack,$a,1);
$ch2 = substr($haystack,$a+1,1);
if (ord($ch) >= HexDec("0x81") && ord($ch2) >= HexDec("0x40")) {
if ( GBcase(substr($haystack,$a,$l2)," lower") == GBcase($needle," lower")) {
$news .= $str_f . substr($haystack,$a,$l2) 。 $str_b;
$a += $l2;
} else {
$news .= $ch.$ch2;
$a += 2;
}
} else {
if (GBcase(substr($haystack,$ a,$l2),"下位") == GBcase($needle,"下位")) {
$news .= $str_f 。 substr($haystack,$a,$l2) 。 $str_b;
$a += $l2;
} else {
$news .= $ch;
$a++;
}
} // END IF
} // WHILE
return $news;
}



関数 GBpos($haystack,$needle,$offset) {
if (!is_int($offset)) {
        $offset = strto lower($offset);
if ($offset != "" && $offset != "r" && $offset != "a") {
return "错误:オフセット值错误。
" ;
}
}
$l = strlen($haystack);
$l2 = strlen($needle);
$found = false;
$w = 0; // WORD
$a = 0; // START

if ($offset == "" || $offset == "r") {
$atleast = 0;
$value = false;
} elseif ($offset == "a") {
$ value = array();
$ atleast = 0;
} else {
$ value = false; haystack,$a,1);
$ch2 = substr($haystack,$a+1,1);
if (ord($ch) >= HexDec("0x81") && ord($ch2) > = hexdec( "0x40")&& $ skip == 0){
if(subst($ haystack、$ a、$ l2)== $ heedle){
if($ offset == "r"){
$ found = true;
$value = $w;
} elseif ($offset == "a") {
$found = true;
$value[ ] = $w;
} elseif (!$value) {
if ( $w >= $atleast) {
$found = true;
$value = $w;
}
}
}
$a += 2;
} else {
if (substr($haystack,$a, $l2) == $needle) {
if ($offset == "r") {
$found = true;
$value = $w;
} elseif ($offset == "a") {
$found = true;
$value[] = $w;
elif (!$value) {
if ($w >= $atleast) {
                        $found = true;
$value = $w;
}
}
$a++ ;
}
$w++;
} // WHILE の終わり
if ($found) {
return $value;
} else {
return $false;
}
// } // WHILE

}

function GBrev($text) {
$news = "";
$l = strlen($text);
$GB = 0;
$a = 0;
while ($a $ch = substr($text,$a,1);
$ch2 = substr($text,$a+1,1) ;
if (ord($ch) >= HexDec("0x81") && ord($ch2) >= HexDec("0x40") && $skip == 0) {
$a += 2;
$ニュース = $ch . $ch2 。 $news;
} else {
$news = $ch . $news;
$a++;
}
}
return $news;
}

function GB_check($text) {
$l = strlen($text);
$a = 0;
while ($ $ch = substr($text,$a,1);
$ch2 = substr($text,$a+1,1);
if (ord($ch) >= HexDec(" 0x81") && ord($ch2) >= HexDec("0x40")) {
return true;
} else {
return false;
}
}
}
関数GB_all ($text) {
$l = strlen($text);
$all = 1;
$a = 0;
while ($a < $l) {
$ch = substr($text,$a,1);
$ch2 = substr ($text,$a+1,1);
if (ord($ch) >= HexDec("0x81") && ord($ch2) >= HexDec("0x40")) {
$a + = 2;
} else {
$a++;
$all = 0;
}
}
if ($all == 1) {
trueを返す;
} else {
return false;
}
}

関数GB_non ($text) {
$l = strlen($text);
$all = 1;
$a = 0;
while ($a < $l) {
$ch = substr($text,$a ,1);
$ch2 = substr($text,$a+1,1);
if (ord($ch) >= HexDec("0x81") && ord($ch2) >= HexDec(" 0x40")) {
$a += 2;
$all = 0;
        } else {
$a++;
}
}
if ($all == 1) {
return true;
} else {
return false;
}
}


関数 GBcase ($text,$case) {
$case = strto lower($case);
if ($case != "upper" && $case != " lower" && $case != "ucwords" && $case != "ucfirst") {
return "関数数$case";
} else {
$ucfirst = 0;
$ucwords = 0;
$news = "";
$l = strlen($text);
$GB = 0;
$english = 0;

$a = 0;
while ($a < $l) {

$ch = substr($text,$a,1);
if ($GB == 0 && ord($ch) >= HexDec("0x81")) {

$GB = 1;
$english = 0;
$news .= $ch;
$ucwords = 0;

} elseif ($GB == 1 && ord ($ch) >= HexDec("0x40") && $english == 0) {
$news .= "$ch";    
$ucwords = 0;
$GB = 0;

} else {
if ($case == "upper") {
$news .= strtoupper($ch);
} elseif ($case == "下位") {
$news .= strtower($ch);
} elseif ($case == "ucwords") {
if ($ucwords == 0) {
$news .= strtoupper($ch);
} else {
$news .= strto lower($ch);
}
$ucwords = 1;
} elseif ($case == "ucfirst") {
if ($uc最初 == 0) {
$news .= strtoupper ($ch);
$ucfirst = 1;
} else {
$news .= strto lower($ch);
$ucfirst = 1;
}
} else {
$news .= $ch;
}
if ($ch == " " || $ch == "n") {
$ucwords = 0;
}
$english = 1;
$GB = 0;

}

$a ++;

} / / END OF while
return $news;
} // end else
}



function GBspace ($text) {

$news = "";
$l = strlen($text);
$GB = 0;
$english = 0;

$a = 0;
while ($a <) ; $l) {


$ch = substr($text,$a,1);
$ch2 = substr($text,$a+1,1);
if (!($ch == " " && $ch2 == " ")) {
if ($GB == 0) {
if (ord($ch) >= HexDec("0x81")) {

if ($english == 1) {
if ((substr($text,$a-1,1) == " ") || (substr($text,$a-1,1) == "n")) {
$news .= " $ch";
$english = 0;
$news .= " $ch";
$english = 0;
$GB = 1;
} else {
$GB = 1;
$english = 0;
$ニュース .= $ch;
}
} else {
$english = 1;
$GB = 0;
$news .= $ch;
}

} else {
if (ord($ch) >= HexDec("0x40")) {
if ($english == 0) {
if ((substr($text,$a+1,1) == " ")|| (substr($text,$a+ 1,1) == "n")) {
$news .= "$ch";    
$news .= "$ch ";
$news .= " $ch";
}
} else {
$english = 1;
$news .= "$ch ";
}
$GB = 0;
}
}
$a++;
} // 途中終了

// チェック1と最後はスペース

$l =
if (substr ($news,0,1) == " ") {
$news = substr($news,1);
}
$l = strlen($news);
if (substr($news,$l-1) ,1) == " ") {
$news = substr($news,0,$l-1);
}
return $news;
}

function GBunspace($text) {
    $news = "";
$l = strlen($text);
$a = 0;
$last_space = 1;
while ($a < $l) {

$ch = substr($text,$ a,1);
$ch2 = substr($text,$a+1,1);
$ch3 = substr($text,$a+2,1);
if (($a + 1) == $l ) {
$last_space = 1;
}
if ($ch == " ") {
if ($last_space == 0) {
if (ord($ch2) >= xDec("0x81") && ord($ch3) >= HexDec("0x40")) {
if ($chi == 0) {
$news .= " ";
$last_space = 1;
}
$chi=1;


} elseif ($ch2 != " ") {
$news .= " ";
$chi = 0;
$last_space = 1;
}
}
} else {
if (ord($ch) > ;= HexDec("0x81") && ord($ch2) >= HexDec("0x40")) {
$chi = 1;
$a++;
$news .= $ch 。 $ch2;
$last_space = 0;

} else {
$chi = 0;
$news .= $ch;
$last_space = 0;
}

}
$a++;
}
// チェック 1 & 最後はスペース

$l = strlen($news);
if (substr($news,0,1) == " ") {
$news = substr($news,1);
}
$l = strlen($news);
if (substr($news,$l-1,1) == " ") {
$news = substr($news,0,$l-1);
}
return $ news;



} // 関数の終わり

function GBstrnear($text,$length) {

$tex_len = strlen($text);
$a = 0;
$w = "";
while ($a < $tex_len) {
$ch = substr($text,$a,1);
$ch2 = substr($text,$a+1,1);
if (GB_all($ch.$ ch2)) {
$w .= $ch.$ch2;
$a=$a+2;
} else {
$w .= $ch;
            $a++;
}
if ($a == $length || $a == ($length - 1)) {
$a = $tex_len;
}
}
return $w;
} // 終わりFUNCTION

function clear_space($text) {
$t = "";
for ($a=0;$a $ch = substr($text,$a, 1);
$ch2 = substr($text,$a+1,1);
if ($ch == " " && $ch2 == " ") {
} else {
$t .= $ch;
}
}
return $t;
}


?>



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート