目次
この記事では主に mb_check_encoding の使用方法を説明します。お役に立てれば幸いです。 " >この記事では主に mb_check_encoding の使用方法を説明します。お役に立てれば幸いです。
mb_check_encoding
Description
Parameters
var
encoding
戻り値
ホームページ バックエンド開発 PHPチュートリアル PHP で mb_check_encoding を使用する方法を共有する

PHP で mb_check_encoding を使用する方法を共有する

Jan 29, 2018 pm 03:13 PM
check encoding 説明書

この記事では主に mb_check_encoding の使用方法を説明します。お役に立てれば幸いです。

mb_check_encoding

  • (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7)

  • mb_check_encoding — 文字列が指定されたエンコーディングに対して有効かどうかを確認します

  • mb_check_encoding — 文字列が指定されたエンコーディングで有効かどうかをチェックします

Description

1

2

3

4

5

bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )

// Checks if the specified byte stream is valid for the specified encoding. 

// It is useful to prevent so-called "Invalid Encoding Attack".

 

// 检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。

ログイン後にコピー

Parameters

var

  • チェックするバイトストリームを省略した場合、この関数はすべての入力を先頭からチェックします。

  • 検査するバイトストリーム。このパラメータを省略した場合、この関数は元のリクエストからのすべての入力をチェックします。

encoding

  • 予想されるエンコーディング。

  • 予想されるエンコーディング。

戻り値

  • 成功した場合はTRUEを、失敗した場合はFALSEを返します。

  • 成功した場合はTRUEを返し、失敗した場合はFALSEを返します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

<?php

/**

 * Created by PhpStorm.

 * User: zhangrongxiang

 * Date: 2018/1/27

 * Time: 下午2:59

 */

 

/**纯数字和英文字母组合*/

$utf8Str = "I have 4 books and 2 magazines to check out. ";

echo ( mb_check_encoding( $utf8Str, &#39;utf-8&#39; ) ) . PHP_EOL; //输出1

echo ( mb_check_encoding( $utf8Str, &#39;gbk&#39; ) ) . PHP_EOL; //输出1

echo bin2hex( $utf8Str ) . PHP_EOL;

//492068617665203420626f6f6b7320616e642032206d6167617a696e657320746f20636865636b206f75742e20

$gbkStr = mb_convert_encoding( $utf8Str, &#39;gbk&#39;, &#39;utf-8&#39; );

echo bin2hex( $gbkStr ) . PHP_EOL;

//492068617665203420626f6f6b7320616e642032206d6167617a696e657320746f20636865636b206f75742e20

 

/**gbk编码的字符串  --> 设置文件编码为gbk*/

$str '博客园和github。';

echo mb_check_encoding( $str'utf-8' ) . PHP_EOL;  //输出空

echo mb_check_encoding( $str'gbk' ) . PHP_EOL; //输出1

 

/**utf-8编码的字符串  --> 设置文件编码为utf-8*/

$str '博客园和github。';

echo mb_check_encoding( $str'utf-8' ) . PHP_EOL;  //1

echo mb_check_encoding( $str'gbk' ) . PHP_EOL; //输出空

 

$utf8Str '我abc是谁.';

echo mb_check_encoding( $utf8Str'utf-8' ) . PHP_EOL;  //输出1

//如果有中文标点符号则为空!!!

echo mb_check_encoding( $utf8Str'gbk' ) . PHP_EOL; //输出1

 

/**自定义检测字符串编码是否为utf-8*/

function is_utf8( $str ) {

    return (bool) preg_match( '//u', serialize($str) );

}

 

echo 'hello 中国!' .is_utf8( 'hello 中国!' ) . PHP_EOL; //1

 

function check_utf8( $str ) {

    $len strlen$str );

    for $i = 0; $i < $len; $i ++ ) {

        $c = ord( $str[ $i ] );

        if ( $c > 128 ) {

            if ( ( $c > 247 ) ) {

                return false;

            elseif $c > 239 ) {

                $bytes = 4;

            elseif $c > 223 ) {

                $bytes = 3;

            elseif $c > 191 ) {

                $bytes = 2;

            else {

                return false;

            }

            if ( ( $i $bytes ) > $len ) {

                return false;

            }

            while $bytes > 1 ) {

                $i ++;

                $b = ord( $str$i ] );

                if $b < 128 || $b > 191 ) {

                    return false;

                }

                $bytes --;

            }

        }

    }

     

    return true;

// end of check_utf8

 

echo check_utf8("hello 中国").PHP_EOL; // 1

echo check_utf8( "\x00\xE3").PHP_EOL;  //空

 

/** check a strings encoded value */

function checkEncoding( $string$string_encoding ) {

    $fs $string_encoding == 'UTF-8' 'UTF-32' $string_encoding;

    $ts $string_encoding == 'UTF-32' 'UTF-8' $string_encoding;

     

    return $string === mb_convert_encoding( mb_convert_encoding( $string$fs$ts ), $ts$fs );

}

 

/* test 1 variables */

$string   "\x00\x81";

$encoding "Shift_JIS";

 

/* test 1 mb_check_encoding (test for bad byte stream) */

if ( true === mb_check_encoding( $string$encoding ) ) {

    echo 'valid (' $encoding ') encoded byte stream!' . PHP_EOL;

else {

    echo 'invalid (' $encoding ') encoded byte stream!' . PHP_EOL;

}

 

/* test 1 checkEncoding (test for bad byte sequence(s)) */

if ( true === checkEncoding( $string$encoding ) ) {

    echo 'valid (' $encoding ') encoded byte sequence!' . PHP_EOL;

else {

    echo 'invalid (' $encoding ') encoded byte sequence!' . PHP_EOL;

}

 

/* test 2 */

/* test 2 variables */

$string   "\x00\xE3";

$encoding "UTF-8";

/* test 2 mb_check_encoding (test for bad byte stream) */

if ( true === mb_check_encoding( $string$encoding ) ) {

    echo 'valid (' $encoding ') encoded byte stream!' . PHP_EOL;

else {

    echo 'invalid (' $encoding ') encoded byte stream!' . PHP_EOL;

}

 

/* test 2 checkEncoding (test for bad byte sequence(s)) */

if ( true === checkEncoding( $string$encoding ) ) {

    echo 'valid (' $encoding ') encoded byte sequence!' . PHP_EOL;

else {

    echo 'invalid (' $encoding ') encoded byte sequence!' . PHP_EOL;

}

ログイン後にコピー

関連する推奨事項:

phpの文字エンコーディング変換の問題 mb_convert_encodingとiconv関数

以上がPHP で mb_check_encoding を使用する方法を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

kernel_security_check_failure ブルー スクリーンを解決する 17 の方法 kernel_security_check_failure ブルー スクリーンを解決する 17 の方法 Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure (カーネルチェック失敗) は比較的一般的な停止コードですが、理由が何であれ、ブルースクリーンエラーは多くのユーザーを悩ませます、当サイトでは 17 種類のエラーをユーザーに丁寧に紹介します。 kernel_security_check_failure ブルー スクリーンに対する 17 の解決策 方法 1: すべての外部デバイスを削除する 使用している外部デバイスが Windows のバージョンと互換性がない場合、Kernelsecuritycheckfailure ブルー スクリーン エラーが発生することがあります。これを行うには、コンピュータを再起動する前に、すべての外部デバイスを取り外しておく必要があります。

DirectX修復ツールの使い方は? DirectX修復ツールの詳しい使い方 DirectX修復ツールの使い方は? DirectX修復ツールの詳しい使い方 Mar 15, 2024 am 08:31 AM

DirectX 修復ツールは専門的なシステム ツールであり、その主な機能は現在のシステムの DirectX 状態を検出することであり、異常が見つかった場合は直接修復できます。 DirectX 修復ツールの使い方がわからないユーザーも多いと思いますので、以下の詳細なチュートリアルを見てみましょう。 1. 修復ツール ソフトウェアを使用して修復検出を実行します。 2. 修復の完了後、C++ コンポーネントに異常な問題があることを示すメッセージが表示された場合は、[キャンセル] ボタンをクリックし、[ツール] メニュー バーをクリックしてください。 3. [オプション] ボタンをクリックし、拡張機能を選択して、[拡張機能の開始] ボタンをクリックします。 4. 拡張が完了したら、再検出して修復します。 5. 修復ツールの操作が完了した後も問題が解決しない場合は、エラーを報告したプログラムをアンインストールして再インストールしてみてください。

HTTP 525 ステータス コードの概要: その定義と応用を調べる HTTP 525 ステータス コードの概要: その定義と応用を調べる Feb 18, 2024 pm 10:12 PM

HTTP 525 ステータス コードの概要: その定義と使用法を理解する HTTP (HypertextTransferProtocol) 525 ステータス コードは、SSL ハンドシェイク中にサーバーでエラーが発生し、安全な接続を確立できないことを意味します。 Transport Layer Security (TLS) ハンドシェイク中にエラーが発生すると、サーバーはこのステータス コードを返します。このステータス コードはサーバー エラー カテゴリに分類され、通常はサーバーの構成またはセットアップの問題を示します。クライアントが HTTPS 経由でサーバーに接続しようとすると、サーバーには

Baidu Netdisk の使用方法 - Baidu Netdisk の使用方法 Baidu Netdisk の使用方法 - Baidu Netdisk の使用方法 Mar 04, 2024 pm 09:28 PM

Baidu Netdisk の使い方をまだ知らない友人も多いので、以下では編集者が Baidu Netdisk の使い方を説明しますので、必要な場合は急いでご覧ください。ステップ 1: Baidu Netdisk をインストールした後、直接ログインします (図を参照); ステップ 2: 次に、ページのプロンプトに従って [マイ共有] と [転送リスト] を選択します (図を参照); ステップ 3: 「 「友達共有」では、写真やファイルを友達と直接共有できます (図を参照); ステップ 4: 次に、「共有」を選択し、コンピューター ファイルまたはネットワーク ディスク ファイルを選択します (図を参照); 5 番目のステップ 1:次に、友達を見つけることができます (写真に示すように); ステップ 6: 「機能宝箱」で必要な機能を見つけることもできます (写真に示すように)。以上、編集者の意見です

自動修復操作で win10 コマンド プロンプトを正しく使用する方法 自動修復操作で win10 コマンド プロンプトを正しく使用する方法 Dec 30, 2023 pm 03:17 PM

コンピューターは長く使用すると故障する可能性が高くなります。その場合、友人が独自の方法でコンピューターを修復する必要があります。では、最も簡単な方法は何でしょうか?今回はコマンドプロンプトを使って修復する方法を紹介します。 Win10 自動修復コマンド プロンプトの使用方法: 1. 「Win+R」を押して cmd と入力して「コマンド プロンプト」を開きます。 2. chkdsk と入力して修復コマンドを表示します。 3. 他の場所を表示する必要がある場合は、次のコマンドを追加することもできます。 「d」などの他のパーティション 4. 実行コマンド chkdskd:/F を入力します。 5. 変更プロセス中に占有されている場合は、Y を入力して続行できます。

素早くコピー&ペーストする方法を学ぶ 素早くコピー&ペーストする方法を学ぶ Feb 18, 2024 pm 03:25 PM

コピー&ペーストのショートカットキーの使い方 コピー&ペーストは、毎日パソコンを使っていると頻繁に遭遇する操作です。作業効率を向上させるためには、コピー&ペーストのショートカットキーを使いこなすことが非常に重要です。この記事では、読者がコピー アンド ペースト操作をより便利に実行できるように、一般的に使用されるコピー アンド ペーストのショートカット キーをいくつか紹介します。コピーのショートカット キー: Ctrl+CCtrl+C はコピーのショートカット キーで、Ctrl キーを押しながら C キーを押すと、選択したテキスト、ファイル、画像などをクリップボードにコピーできます。このショートカットキーを使用するには、

KMS アクティベーション ツールとは何ですか? KMS アクティベーション ツールの使用方法は? KMS アクティベーション ツールの使用方法は? KMS アクティベーション ツールとは何ですか? KMS アクティベーション ツールの使用方法は? KMS アクティベーション ツールの使用方法は? Mar 18, 2024 am 11:07 AM

KMS ライセンス認証ツールは、Microsoft Windows および Office 製品のライセンス認証に使用されるソフトウェア ツールです。 KMS は KeyManagementService の略で、鍵管理サービスです。 KMS ライセンス認証ツールは、KMS サーバーの機能をシミュレートして、コンピューターが仮想 KMS サーバーに接続して Windows および Office 製品をライセンス認証できるようにします。 KMS ライセンス認証ツールは、サイズが小さく、機能が強力です。ワンクリックで永続的にライセンス認証できます。インターネットに接続せずに、あらゆるバージョンのウィンドウ システムとあらゆるバージョンの Office ソフトウェアをライセンス認証できます。現在、最も成功しているツールです。頻繁に更新される Windows ライセンス認証ツール 今日はそれを紹介します kms ライセンス認証作業を紹介します

ショートカットキーを使ってセルを結合する方法 ショートカットキーを使ってセルを結合する方法 Feb 26, 2024 am 10:27 AM

セルを結合するためのショートカット キーの使用方法 日常業務では、表の編集や書式設定が必要になることがよくあります。セルの結合は、表の美しさと情報の表示効果を向上させるために、隣接する複数のセルを 1 つのセルに結合する一般的な操作です。 Microsoft ExcelやGoogle Sheetsなどの主流の表計算ソフトでは、セルの結合操作は非常に簡単でショートカットキーで実現できます。この2つのソフトでセルを結合するショートカットキーの使い方を紹介します。存在する

See all articles