PHPのマルチバイト文字列

Nov 21, 2016 pm 05:58 PM
php PHP文字列

はじめに

多くの言語で必要な文字はすべて 8 ビット値に 1 対 1 でマッピングできますが、書面によるコミュニケーションに非常に多くの文字を必要とし、エンコード範囲に含めることができない言語もいくつかあります。バイト内 (バイト バイトは 8 ビットで構成されます。各ビットには、1 または 0 の 2 つの異なる値のみを含めることができます。したがって、1 バイトは 256 個の異なる値、つまり 2 乗の 8 つだけを表すことができます)。 マルチバイト文字エンコーディング スキームは、従来のバイトベースのエンコーディング システムで 256 文字を超える文字を表現するために開発されました。

マルチバイトでエンコードされた文字列を操作 (トリム、分割、結合など) する場合、このエンコード スキームでは 2 つ以上の連続するバイトで 1 つの文字しか表現できないため、特殊な関数を使用する必要があります。 そうしないと、この文字列にマルチバイト文字列を検出できない関数を適用すると、マルチバイト文字の開始位置を検出できずに文字化けが発生し、本来の意味が失われる可能性があります。

mbstring は、PHP でマルチバイト エンコーディングを処理するのに役立つマルチバイト文字列用の関数を提供します。 さらに、mbstring は、使用可能な文字エンコーディング間で変換できます。 便宜上、mbstring は、UTF-8、UCS-2、および多くのシングルバイト エンコーディングなどの Unicode ベースのエンコーディングを処理できるように設計されています。

mbstring はデフォルトの拡張子ではありません。これは、デフォルトではアクティブ化されていないことを意味します。 このモジュールは構成オプションで明示的にアクティブにする必要があります。

HTTP 入出力

HTTP 入出力の文字エンコーディング変換は、バイナリ データに対しても機能します。 HTTP入出力にバイナリデータを使用する場合、文字エンコーディングの変換はユーザーが制御する必要があります。

PHP 4.3.3 以降、HTML フォームの enctype 属性が multipart/form-data に設定され、php.ini の mbstring.encoding_translation が On に設定されている場合、POST 変数とアップロードされたファイルの名前も内部文字エンコーディングに変換されます。 ただし、変換はクエリのキーには適用されません。

HTTP 入力 PHP スクリプトで HTTP 入力文字の変換を制御する方法はありません。 HTTP 入力文字変換を無効にするには、これを php.ini で設定する必要があります。

例 #1 php.ini で HTTP 入力変換を無効にする

;; 禁用 HTTP 输入转换
mbstring.http_input = pass
;;禁用 HTTP 输入转换 (PHP 4.3.0 或更高版本)
mbstring.encoding_translation = Off
ログイン後にコピー

PHP が Apache モジュールとして実行されている場合。これらの設定は、各ディレクトリの httpd.conf または .htaccess の各仮想ホスト (Virtual Host) ディレクティブを通じてオーバーライドすることもできます。
HTTP 出力文字エンコード変換を使用するには、いくつかの方法があります。 1 つは php.ini を使用する方法、もう 1 つは ob_start() を使用し、ob_start のコールバック関数として mb_output_handler() を使用する方法です。

例 #2 php.ini 設定例

;; 为所有 PHP 页面启用输出字符编码的转换
;; 启用输出缓冲
output_buffering    = On
;; 设置 mb_output_handler 来进行输出的转换
output_handler      = mb_output_handler
ログイン後にコピー

例 #3 スクリプト例

<?php
    // 仅为此页面启用输出字符编码的转换
    // 设置 HTTP 输出字符编码为 SJIS
    mb_http_output(&#39;SJIS&#39;);
    // 开始缓冲并指定 "mb_output_handler" 为回调函数
    ob_start(&#39;mb_output_handler&#39;);
?>
ログイン後にコピー

マルチバイト文字列関数

mb_check_encoding — 文字列が指定されたエンコーディングで有効かどうかを確認する

mb_convert_case — 文字列のサイズを変更する 書き込み変換

mb_convert_encoding — 文字エンコーディングを変換します

mb_convert_kana — 「かな」を別の文字に変換します (「全角」、「半角」など)

mb_convert_variables — 1 つ以上の変数の文字エンコーディングを変換します

mb_decode_mimeheader — MIME ヘッダーフィールドの文字列

mb_decode_numericentity — HTML 数値文字列を文字にデコードします

mb_detect_encoding — 文字のエンコーディングを検出します

mb_detect_order — 文字エンコーディングの検出順序を設定/取得します

mb_encode_mimeheader — MIME ヘッドの場合 エンコードされた文字列

mb_encode_numericentity — 文字を HTML 数値文字列参照にエンコードします

mb_encoding_aliases — 既知のエンコーディング タイプのエイリアスを取得します

mb_ereg_match — マルチバイト文字列の正規表現一致

mb_ereg_replace_callback — 正規表現検索を実行し、コールバックを使用してマルチバイト サポートに置換します

mb_ereg_replace — 正規表現をマルチバイトサポートで置換します

mb_ereg_search_getpos — 次の正規表現一致の開始点を返します

mb_ereg_search_getregs — 最後のマルチバイト正規表現一致から結果を取得します

mb_ereg_search_init — マルチバイト正規表現一致のための文字列と正規表現を設定します

mb_ereg_search_pos — 事前定義されたマルチバイト文字列のマルチバイト正規表現の一致部分の位置と長さを返します

mb_ereg_search_regs — マルチバイト正規表現の一致した部分を返します

mb_ereg_search_setpos — 次の正規表現一致の開始点を設定します

mb_ereg_search — 事前定義されたマルチバイト文字列に対するマルチバイト正規表現一致

mb_ereg — マルチバイトサポートによる正規表現一致

mb_eregi_replace —大文字と小文字を無視して正規表現をマルチバイトサポートに置き換えます

mb_eregi — マルチバイトサポートで大文字と小文字を無視して正規表現を一致させます

mb_get_info — mbstringの内部設定を取得します

mb_http_input — HTTP入力文字エンコーディングを検出します

mb_http_output — HTTP出力文字エンコーディングを設定/取得します

mb_internal_encoding — 内部文字エンコーディングを設定/取得します

mb_ language — 現在の言語を設定/取得します

mb_list_encodings — サポートされているすべてのエンコーディングの配列を返します

mb_output_handler — 出力バッファ内の文字エンコーディングを変換するコールバック関数

mb_parse_str — Parse get/post/cookieデータとグローバル変数を設定し、MB_PREFERRED_MIME_NAME - MIME文字列を取得する

MB_REGEX_ENCODING - MULTIBYTE REGEXのセット/取得

mb_split — 正規表現を使用してマルチバイト文字列を分割します

mb_strcut — 文字の一部を取得します

mb_strimwidth — 指定された幅で切り詰められた文字列を取得します

mb_stripos — 大文字と小文字を区別せずに、別の文字が含まれる文字列を検索します文字列内の最初の出現箇所の検索

mb_stristr — 大文字と小文字を区別せずに、別の文字列内の文字列の最初の出現箇所を検索します

mb_strlen — 文字列の長さを取得します

mb_strpos — 別の文字列内の文字列の最初の出現箇所を検索します位置

mb_strrchr — 別の文字列内の指定された文字の最後の出現を検索します

mb_strrichr — 大文字と小文字を区別せずに、別の文字列内の指定された文字の最後の出現を検索します

mb_strripos — 大文字と小文字を区別せずに、ある文字列内の最後の出現を検索しますstring

mb_strrpos — 文字列内で最後に出現する文字列を検索します

mb_strstr — 別の文字列内で最初に出現する文字列を検索します

mb_strto lower — 文字列を小文字にします

mb_strtoupper — 文字列を大文字にします

mb_strwidth — Return文字列の幅

mb_substitute_character — 置換文字を設定/取得します

mb_substr_count — 文字列の出現数をカウントします

mb_substr — 文字列の一部を取得します

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

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

See all articles