ホームページ  >  記事  >  バックエンド開発  >  新しくコンパイルした中国語傍受機能の暴力バージョン/穏やかバージョンを送信_PHP チュートリアル

新しくコンパイルした中国語傍受機能の暴力バージョン/穏やかバージョンを送信_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:00:03784ブラウズ

安全で信頼性の高い暴力的なバージョンを使用することをお勧めします。笑
プログラミングの観点からは、穏やかなバージョンの方が効率的です。
基本的な原理は、off と len の位置ずれの可能性を修正することです。穏やかなバージョンでは、最初に見つかった文字は

/**
* @brief シンプルで効率的な文字列インターセプト関数 (CJK 文字をサポート)
*
* 上位部分の ASCII 値を決定するだけで、ほとんどの通常の中国語と英語の混合文字列を処理できます
* 4バイトまたは3バイトのutfエンコーディングをサポートしていません
*
* 要点: off 値/len 値の位置ずれを 2 バイトで修正します (パラメータ $len のデフォルト値が -1 である目的に注意してください)
※使い方はsubstr()と同じですが、GBKコードの下位ビット(0x40以降)に問題がある可能性があります
*/
関数 my_substr($str, $off, $len = -1)
{
$mlen = strlen($str);

/* ステップ 0: パラメータのセキュリティチェックと修正 */
if ($off $off = $mlen;
if ($off > $mlen)
$off = 0;

/* ステップ 1: $off 修正、後方検索 */
if ($off > 0)
{
$fix = $off;
$mb = false;
する
{
$ch = ord($str{$fix--});
if ($ch 休憩;
$mb = true;
}
while ($fix);

($mb) の場合
{
$fix = ($off - $fix);
if ($fix & 1)
{
$オフ--;
$レン;
}
}
}

/* ステップ 2: $len の修正、上記と同じ */
if ($len = $mlen)
{
$len = $mlen - $off;
}
それ以外
{


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445551.html技術記事安全で信頼性の高い暴力的なバージョンを使用することをお勧めします。プログラミングの観点からは、穏やかなバージョンの方が効率的です (笑)。基本原則は、off と len の位置ずれを修正することです。穏やかなバージョンは、から逆方向に検索します。オフ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。