ホームページ バックエンド開発 PHPチュートリアル GBK文字列のインターセプトに関連する問題~

GBK文字列のインターセプトに関連する問題~

Jun 13, 2016 pm 01:27 PM
ascii count gbk str substr

GBK 文字列のインターセプトの問題~~~~
これは GBK 文字列をインターセプトする関数です:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
function  gb_substr( $str ,  $len ){        
      $count  = 0;        
      for ( $i =0;  $i &lt; strlen ( $str );  $i ++){        
          if ( $count  ==  $len )  break ;        
          if (preg_match( "/[\x80-\xff]/" ,  substr ( $str ,  $i , 1))){
        ++ $i ;
          }        
          ++ $count ;                
      }        
      return   substr ( $str , 0,  $i );        
}

ログイン後にコピー


私の質問は、GBK と Is' です。 GB2312 の各文字は間違いなく 2 バイトですか?あとはインターセプトされる長さ *2 を使って終了するだけですか?
たとえば、3 文字をインターセプトしたい: 3*2=6、つまり 6 の位置をインターセプトしたいとします。

そうですか?

-----解決策---------
mb シリーズ関数を使用すると、GBK は 2 つの非 ASCII 文字を扱いますが、ASCII は 1 バイトのままです。
------解決策------------------
間違っています。ASCII コードを含む数字や文字が含まれている可能性があります。

ディスカッション
これは GBK 文字列をインターセプトする関数です:
PHP コード

function gb_substr( $str , $len ){
$count = 0;
for ( $i =0; $i if ( $count == $len ) ブレーク……
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

1 つの ASCII 文字は何バイトを占めますか? 1 つの ASCII 文字は何バイトを占めますか? Mar 09, 2023 pm 03:49 PM

1 つの ASCII 文字は何バイトを占めますか?

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語エンコード分析: UTF-8 と GBK の比較 Mar 28, 2024 pm 01:54 PM

Go 言語エンコード分析: UTF-8 と GBK の比較

カウンタとカウントの違い カウンタとカウントの違い Nov 20, 2023 am 10:01 AM

カウンタとカウントの違い

PHP での ASCII 値の変換について簡単に学習します PHP での ASCII 値の変換について簡単に学習します Mar 28, 2024 pm 06:42 PM

PHP での ASCII 値の変換について簡単に学習します

PHP は文字列の最初の文字の ASCII 値を返します。 PHP は文字列の最初の文字の ASCII 値を返します。 Mar 21, 2024 am 11:01 AM

PHP は文字列の最初の文字の ASCII 値を返します。

PHPは、別の文字列内の文字列の開始位置から終了位置までの文字列を返します。 PHPは、別の文字列内の文字列の開始位置から終了位置までの文字列を返します。 Mar 21, 2024 am 10:31 AM

PHPは、別の文字列内の文字列の開始位置から終了位置までの文字列を返します。

Unicode と ASCII の違いは何ですか Unicode と ASCII の違いは何ですか Sep 06, 2023 am 11:56 AM

Unicode と ASCII の違いは何ですか

文字列をインターセプトするための PHP の substr() 関数を理解する 文字列をインターセプトするための PHP の substr() 関数を理解する Nov 18, 2023 am 11:27 AM

文字列をインターセプトするための PHP の substr() 関数を理解する

See all articles