ホームページ バックエンド開発 PHPチュートリアル [PHP] urlencode と rawurlencode の違いを簡単に説明します

[PHP] urlencode と rawurlencode の違いを簡単に説明します

Apr 18, 2019 pm 02:09 PM
php urlencode 違い

この記事では主に PHP の urlencode と rawurlencode の違いについて説明しますが、一定の参考価値があり、興味のある友人はそれについて学ぶことができます。

イベントの背景:

ダニエルから、h5 ミニゲームを作成する前に、バックエンドがユーザー関連の情報をフロントエンドに出力する必要があると聞きました。出力内容には、ユーザー ID 、ユーザー ニックネーム、その他のフィールドが含まれており、get メソッドを使用してパラメータを渡します。バックエンドは、PHP 言語を使用して、一般的に使用される urlencode 関数を使用して中国語のニックネームをフォーマットおよびエンコードします。

問題が発生しました:

書式設定には urlencode 関数を使用してください。urlencode 関数はスペースを次のようにエンコードします:

もちろん、フロントエンドは受信時にデコードしてスペースに置き換えることができます。ただし、これは追加のステップであり、非常に面倒です。当社のデータ インターフェイスはサードパーティまたは他の人向けに開発されている場合があり、サードパーティが処理において必ずしもこの考え方に従うわけではない場合があります。

たとえば、フロントエンドが Python を使用して受信し、直接デコードして表示する場合、ニックネームには番号が付きます。

解決策:

使用 rawurlencode

PHP では、urlencode はスペースを No としてエンコードします。 rawurlencode はスペースを

#PHP マニュアル # の 2 つの関数の説明:

##urlencode :文字列を返します。文字列を返します。この文字列内の -_ を除くすべての非英数字はパーセント記号 (%) に置き換えられ、その後に 2 つの 16 進数字とスペースが続き、プラス記号 ( ) としてエンコードされます。このエンコーディングは、WWW フォーム POST データのエンコーディングと同じであり、application/x-www-form-urlencoded のメディア タイプ エンコーディングと同じです。 歴史的な理由から、このエンコーディングは、エンコーディング スペースがプラス記号 ( ) であるという点で、RFC1738 エンコーディング (rawurlencode() を参照) とは異なります。

rawurlencode:-_. を除くすべての非英数字文字がパーセント記号に置き換えられた文字列を返します。 (%) の後に 2 つの 16 進数が続きます。 RFC 1738 で説明されているこのエンコーディングは、リテラル文字が特別な URL 区切り文字として解釈されないように保護し、トランスポート メディア (一部のメール システムなど) で使用される文字変換によって URL 形式が文字化けしないようにすることを目的としています。

#したがって、PHP を使用して中国語エンコーディングを転送する場合は、rawurlencode を使用してください

## 関連コース:

PHP ビデオ チュートリアル

以上が[PHP] urlencode と rawurlencode の違いを簡単に説明しますの詳細内容です。詳細については、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

PSのエクスポートPDFのパスワード保護を設定する方法 PSのエクスポートPDFのパスワード保護を設定する方法 Apr 06, 2025 pm 04:45 PM

Photoshopでパスワードで保護されたPDFをエクスポート:画像ファイルを開きます。 [ファイル]&gtをクリックします。 「エクスポート」> 「PDFとしてのエクスポート」。 「セキュリティ」オプションを設定し、同じパスワードを2回入力します。 [エクスポート]をクリックして、PDFファイルを生成します。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

作曲家は何に使用されていますか? 作曲家は何に使用されていますか? Apr 06, 2025 am 12:02 AM

作曲家は、PHPの依存関係管理ツールです。 Composerを使用するコアステップは次のとおりです。1)「Stripe/Stripe-PHP」などのComposer.jsonの依存関係を宣言:「^7.0」; 2)ComposerInStallを実行して、依存関係をダウンロードおよび構成します。 3)Composer.LockおよびAutoload.phpを介してバージョンとオートロードを管理します。 Composerは依存関係管理を簡素化し、プロジェクトの効率と保守性を向上させます。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

See all articles