検索
ホームページバックエンド開発PHPの問題PHPで文字列に含まれる中国語の文字の数を検出する方法

検出手順: 1. preg_replace() 関数を正規表現とともに使用して、文字列をフィルタリングし、文字列内の中国語以外の文字を削除します。構文は、"preg_replace("/[^\x{4E00}-\) です。 x{ 9FFF}] /u",'', 元の文字列)" は、すべての中国語文字を含む文字列を返します。 2. mb_strlen() 関数を使用して、フィルタリングされた文字列の長さ (中国語の文字数) を計算します。構文「mb_strlen(フィルター文字列,"utf-8")」。

PHPで文字列に含まれる中国語の文字の数を検出する方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、DELL G3 コンピューター

PHP では、preg_replace を使用できます。 () 関数と mb_strlen() 関数を使用して、文字列に含まれる中国語の文字の数を検出します。

実装手順:

ステップ 1: preg_replace() 関数を正規表現とともに使用して、文字列をフィルタリングし、文字列を削除します。中国語以外の文字

preg_replace() 削除の原則: 正規表現を使用して文字列内の中国語以外の文字を検索し、空文字 '' に置き換えます。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^";
echo "原字符串:";
var_dump($str);
$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
echo "过滤字符串后:";
$newStr=preg_replace($pattern,&#39;&#39;, $str);
var_dump($newStr);
?>

は、すべての中国語文字を含む文字列を返します

PHPで文字列に含まれる中国語の文字の数を検出する方法

ステップ 2: mb_strlen() 関数を使用して、フィルターされた文字列の長さを計算します(中国語の文字数)

$len=mb_strlen($newStr,"utf-8");
echo "中文字符的个数:".$len;

PHPで文字列に含まれる中国語の文字の数を検出する方法

説明:

preg_replace():

preg_replace() 関数は正規表現の検索と置換を実行できます。これは強力な文字列置換処理関数です。この関数の構文形式は次のとおりです:

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])

パラメータの説明は次のとおりです:

  • $pattern: 検索するパターン (文字列または文字列の配列)
  • ##$replacement: 置換に使用される文字列または文字列の配列。この引数が文字列で $pattern が配列の場合、すべてのパターンがこの文字列で置き換えられます。 $pattern と $replacement が両方とも配列の場合、各 $pattern は $replacement 内の対応する要素で置き換えられます。 $replacement の要素が $pattern よりも少ない場合、余分な $pattern は空の文字列に置き換えられます。
  • $subject: 検索および置換される文字列または文字列配列。$subject が配列の場合、検索および置換は $subject の各要素に対して実行され、戻り値も 1 つの配列になります。 。
  • $limit: オプションのパラメーター。各 $subject のパターンごとの置換の最大数。デフォルトは -1 (無限) です。
  • $count: オプションのパラメーターを指定した場合、完了した置換の数が入力されます。
$subject が配列の場合、preg_replace() 関数は配列を返し、それ以外の場合は文字列を返します。

関数 preg_replace() が一致を見つけた場合は、置換された $subject を返します。そうでない場合は、変更されていない $subject を返します。 preg_replace() 関数の各パラメータ (パラメータ $limit を除く) は配列にすることができます。 $pattern パラメーターと $replacement パラメーターが両方とも配列の場合、関数は配列内に出現する順序でキーを処理します。エラーが発生した場合は NULL が返されます。

パラメータ $replacement には後方参照 \\n または $n を含めることができますが、構文的には後者の方が優先されます。このような各参照は、一致した n 番目のキャプチャ サブグループによってキャプチャされたテキストに置き換えられます。 n は 0 ~ 99 で、\\0 と $0 は完全なパターン マッチング テキストを表します。

キャプチャ サブグループのシリアル番号のカウント方法は次のとおりです。キャプチャ サブグループを表す左括弧は、1 から開始して左から右に数えられます。 $replacement でバックスラッシュを使用する場合は、4 ("\\\\" を使用する必要があります。これは、最初は PHP 文字列であり、エスケープ後は 2 になり、正規表現を通過した後は文字列とみなされます。エンジン。オリジナルのバックスラッシュ)。

置換モードで作業しており、後方参照の後に別の数値を続ける必要がある場合 (例: 一致するパターンの直後に元の数値を追加する)、構文 \\1 は使用できません。後方参照について説明します。たとえば、 \\11 を指定すると、 preg_replace() は \\1 後方参照の後に元の 1 が続くのか、それとも \\11 後方参照の後に何も続くのかを理解できなくなります。この場合の解決策は、${1}1 を使用することです。これにより、$1 の別の後方参照、つまりソース 1 の別の後方参照が作成されます。

非推奨の e 修飾子を使用する場合、この関数は一部の文字 ('、"、\、および NULL) をエスケープし、後方参照置換を実行します。これが完了するときは、参照が解析された後に必ず後方参照してください。 、一重引用符や二重引用符によって引き起こされる構文エラーはありません (例: 'strlen(\'$1\') strlen("$2")')。PHP の文字列構文に準拠し、eval 構文に準拠していることを確認してください。置換が完了すると、エンジンは eval メソッドを使用して結果の文字列を PHP コードとして評価し、戻り値を置換に参加する最終文字列として使用します。

#

mb_strlen()函数可以计算英文字符串、中文字符串或中英混合字符串的长度。

mb_strlen($str [, $encoding = mb_internal_encoding()])
  • $str 为需要计算长度的字符串

  • $encoding 是可选参数,为字符编码,如果省略则使用内部字符编码。

mb_strlen() 函数的返回值为具有 $encoding 编码的字符串 $str 所包含的字符数,如果 $encoding 无效则返回 false。

注意:在 mb_strlen() 函数中,无论是汉字,还是英文、数字、小数点、下划线和空格,都只占一个字符长度。

推荐学习:《PHP视频教程

以上がPHPで文字列に含まれる中国語の文字の数を検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1

メモ帳++7.3.1

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン