検索
ホームページバックエンド開発PHPチュートリアルPHP は素晴らしいこともできます - PHP_PHP チュートリアルでのエンコードとデコードの詳細な説明

PHPのエンコードとデコードの詳しい解説

PHPのエンコードとデコードの詳しい解説

この記事では主に、PHP で大きなことができる PHP のエンコードとデコードの詳細な説明を紹介します。この記事では、ASCII のエンコードとデコード、URL のエンコードとデコード、Base64 のエンコードとデコード、HTML エンティティのエンコードとデコード、バイナリ、8 進数について説明します。 、10 進数、および 16 進数の変換やその他のコンテンツについては、必要な友達が参照できます

前に書いてください

PHP は素晴らしいこともできます。PHP の構文機能と関連する関数ライブラリの古典的な使い方をまとめました。実際に大きな違いをもたらすことはできないかもしれませんが、これらの方法をマスターすると、仕事に少し役立ちます。みんなでブレインストーミングして、「PHP Can Do Great Things」をもっと盛り上げてください。転載元を明記してください(jb51.net)

2. はじめに

PHP は一般的なスクリプト言語です。その主な理由は、Web プログラムのほぼ 50% が PHP を使用していることです (不完全な統計)。 PHP は開発用に豊富な関数と API インターフェイスを提供しており、その強力な組み込み関数や拡張機能を非常に便利に使用できます。この記事は、主に利点をまとめた「PHP で大きなことを実現できる」シリーズの最初の記事です。 PHP のエンコード、デコード、基数変換の知識。

3. PHPのエンコードとデコード

1. ASCIIエンコードとデコード

ASCII(発音:英語発音:/ˈæski/ ASS-kee、American Standard Code for Information Interchange、American Standard Code for Information Interchange)は、ラテン文字をベースとしたコンピュータコーディングシステムです。主に現代英語の表示に使用されますが、その拡張バージョン EASCII は他の西ヨーロッパ言語を部分的にサポートでき、国際標準 ISO/IEC 646 と同等です。 World Wide Web により ASCII が広く使用されるようになり、2007 年 12 月までに徐々に Unicode に置き換えられました。 https://zh.wikipedia.org/zh/ASCII

PHP の基本関数には ASCII エンコードおよびデコード関数が組み込まれており、ASCII エンコードおよびデコードを簡単に実行できます。

int ord (string $string) //文字列 string の最初の文字の ASCII コード値を返します。

String chr (int $ascii) //指定されたasciiに対応する単一の文字を返します。

コードは次のとおりです:

$str = '中国へようこそ';

関数getNum($string){

$針 = 0;

$num = '';

while (isset($string[$needle])) {

$num .= $num==0?'':' ';

$num .= ord($string[$needle]);

$needle++;

}

$num を返します;

}

関数getChar($num){

$num_arr =explode(' ', $num);

$string = '';

foreach ($num_arr as $value) {

$string .= chr($value);

}

$string を返す;

}

echo "文字をASCIIコードnに変換";

echo getNum($str);

エコー「ン」;

echo "ASCII 文字 n";

echo getChar(getNum($str));

/* @OUTPUT

文字をASCIIコードに変換する

87 101 108 99 111 109 101 32 116 111 32 67 104 105 110 97

ASCIIコード文字

中国へようこそ

*/

?>

2. URLのエンコードとデコード

URL エンコードは、ブラウザーがフォーム入力をパッケージ化するために使用する形式です。ブラウザはフォームからすべての名前と値を取得し、それらを URL の一部として、または名前/値パラメータのエンコーディングとして個別にサーバーに送信します。たとえば、Web ページにアクセスすると、URL エンコードである % を含む文字列が多数存在します。

URLエンコードは通常UTF-8エンコード形式を使用するため、データ転送にはUTF-8形式を使用することをお勧めします。通常の意味での URL エンコードは、ASCII コードの 16 進数の前に % が付いているものとして理解でき、大文字と小文字の区別はありません。

コードは次のとおりです:

String urlencode(string $str) //この関数は、文字列のエンコードと URL のリクエスト部分での使用を容易にします。また、変数を次のページに渡すことも容易になります。スペースは + としてエンコードされます。

String urldecode(string $str) //指定されたエンコードされた文字列内の任意の %XX をデコードし、プラス記号 ('+') をスペース文字にデコードします。

String rawurlencode (string $str) //指定された文字を RFC 3986 に従ってエンコードし、スペースを %20 に変換します。

String rawurldecode (string $str) //この文字列内のパーセント記号 (%) の後に続く 2 つの 16 進数がリテラル文字に置き換えられる文字列を返します。 +はスペースに変換されません。

+ とスペースの変換処理を除いて、2 つの関数の使い方は同じです。rawurlencode はスペースを %20 に変換し、+ をスペースに変換しません。

コードは以下の通りです:

$str_arr = array(

「www.jb51.net」、

「http://www.jb51.net/」、

「PHP も素晴らしいことができます」、

'!@#$%^&*()_+=-~`[]{}|\;:'",./?'

);

foreach ($str_arr as $key => $value) {

echo $value,"t->t",urlencode($value),"n";

}

/* @OUTPUT

www.jb51.net -> www.jb51.net

http://www.jb51.net/ -> http%3A%2F%2Fwww.jb51.net%2F

PHP も素晴らしいことができます -> PHP%E4%B9%9F%E8%83%BD%E5%B9%B2%E5%A4%A7%E4%BA%8B

!@#$%^&*()_+=-~`[]{}|;:'",./? -> %21%40%23%24%25%5E% 26%2A%28%29_%2B%3D-%7E%60%5B%5D%7B%7D%7C%5C%3B%3A%27%22%3C%3E%2C.%2F%3F

*/

?>

3. Base64エンコードとデコード

Base64は、64個の印刷可能な文字に基づくバイナリデータの表現方法です。 2 の 6 乗は 64 に等しいため、6 ビットごとが 1 つの単位となり、印刷可能な文字に対応します。 3 バイトは 24 ビットで、4 Base64 ユニットに対応します。つまり、3 バイトは 4 つの印刷可能文字で表す必要があります。電子メールの転送エンコードとして使用できます。使用される文字は、大文字と小文字が 26 文字、数字が 10 文字、プラス記号「+」、スラッシュ「/」の合計 64 文字で、接尾語として等号「=」が使用されます。完全な Base64 定義は、RFC 1421 および RFC 2045 にあります。エンコードされたデータは元のデータよりわずかに長く、元のデータの 4/3 になります。電子メールでは、RFC 822 に従って、76 文字ごとにキャリッジ リターンとライン フィードを追加する必要があります。エンコードされたデータ長は、元の長さの約 135.1% であると推定できます。 https://zh.wikipedia.org/zh/Base64

Stringbase64_encode(string $data) //base64を使用してデータをエンコードします。

string base64_decode (string $data [, bool $strict = false ]) //base64 でエンコードされたデータをデコードします。

ケース: HTML ページの img タグは、src 属性で Base64 エンコーディングを使用して画像を出力できるため、HTTP リクエストの数を減らすことができます。

コードをコピーします。コードは次のとおりです:

$string = file_get_content('3mc2.png');

エコー ';

/* @OUTPUT

UEhQ5Lmf6IO95Yqe5aSn5LqL

*/

?>

4. HTMLエンティティのエンコードとデコード

一部の文字は HTML で予約されており、特別な意味を持っています。たとえば、不等号「

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = “UTF-8″ [, bool $double_encode = true ]]] ) //次の HTML 特殊文字を含む HTML エンティティをエンコードします

1.「&」(アンパサンド)は「&」になります

2.ENT_NOQUOTESが設定されていない場合、'"'(ダブルクォーテーション)は'"'になります。

3. ENT_QUOTESが設定されている場合のみ、”””(シングルクォーテーション)は””(または”)になります。

4.「

5.「>」(より大きい)は「>」になります

string htmlspecialchars_decode (string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ]) //この関数の機能は htmlspecialchars() のまったく逆です。特殊な HTML エンティティを通常の文字に変換します。

同じ機能を持つ関数 htmlentities/html_entity_decode もあります。この関数のペアは中国語の文字も HTML エンティティにエンコードし、文字化けを生成するため、エンコードとデコードには htmlspecialchars を使用することをお勧めします。

ケース: XSS クロスサイト スクリプティング攻撃を防ぐには、ユーザーが送信したデータを HTML エンティティに変換する必要があります。

コードは以下の通りです:

$_POST['message'] = 'テストメッセージ文字'">

http://www.bkjia.com/PHPjc/987098.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/987098.html技術記事 PHP のエンコードとデコードの詳細な説明 PHP のエンコードとデコードの詳細な説明 PHP のエンコードとデコードの詳細な説明。この記事では...
について説明します。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?Apr 23, 2025 am 12:16 AM

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?Apr 23, 2025 am 12:13 AM

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

session.gc_maxlifetime構成設定とは何ですか?session.gc_maxlifetime構成設定とは何ですか?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでセッション名をどのように構成しますか?PHPでセッション名をどのように構成しますか?Apr 23, 2025 am 12:08 AM

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

セッションIDをどのくらいの頻度で再生する必要がありますか?セッションIDをどのくらいの頻度で再生する必要がありますか?Apr 23, 2025 am 12:03 AM

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

PHPでセッションCookieパラメーターをどのように設定しますか?PHPでセッションCookieパラメーターをどのように設定しますか?Apr 22, 2025 pm 05:33 PM

PHPのセッションCookieパラメーターの設定は、session_set_cookie_params()関数を通じて達成できます。 1)この関数を使用して、有効期限、パス、ドメイン名、セキュリティフラグなどのパラメーターを設定します。 2)session_start()を呼び出して、パラメーターを有効にします。 3)ユーザーログインステータスなど、ニーズに応じてパラメーターを動的に調整します。 4)セキュリティを改善するために、セキュアとhttponlyフラグを設定することに注意してください。

PHPでセッションを使用する主な目的は何ですか?PHPでセッションを使用する主な目的は何ですか?Apr 22, 2025 pm 05:25 PM

PHPでセッションを使用する主な目的は、異なるページ間でユーザーのステータスを維持することです。 1)セッションはsession_start()関数を介して開始され、一意のセッションIDを作成し、ユーザーCookieに保存します。 2)セッションデータはサーバーに保存され、ログインステータスやショッピングカートのコンテンツなど、さまざまなリクエスト間でデータを渡すことができます。

サブドメイン間でセッションをどのように共有できますか?サブドメイン間でセッションをどのように共有できますか?Apr 22, 2025 pm 05:21 PM

サブドメイン間でセッションを共有する方法は?一般的なドメイン名にセッションCookieを設定することにより実装されます。 1.セッションCookieのドメインをサーバー側の.example.comに設定します。 2。メモリ、データベース、分散キャッシュなど、適切なセッションストレージ方法を選択します。 3. Cookieを介してセッションIDを渡すと、サーバーはIDに基づいてセッションデータを取得および更新します。

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

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

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

SublimeText3 Mac版

SublimeText3 Mac版

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