PHP では、urlencode 関数または rawurlencode 関数を使用して URL をトランスコードできます。構文は、それぞれ「urlencode (string str)」および「rawurldecode (string str)」です。
php 中国語 URL トランスコーディング
PHP で URL をエンコードするには、次のようにします。 urlencode() または rawurlencode() の違いは、前者はスペースを ' ' としてエンコードし、後者はスペースを ' ' としてエンコードすることです。ただし、エンコード時に URL の一部のみをエンコードする必要があることに注意してください。コロンとバックスラッシュもエスケープされます。
次は詳細な説明です:
string urlencode ( string str)
文字列を返します。この文字列内の -_ を除くすべての英数字以外の文字は、パーセント記号 (%) とその後に続く 2 つの 16 進数に置き換えられます。数字、スペースはプラス記号 ( ) としてエンコードされます。このエンコーディングは、WWW フォーム POST データのエンコーディングと同じであり、application/x-www-form-urlencoded メディア タイプと同じエンコーディングです。歴史的な理由により、このエンコーディングは、スペースをプラス記号 ( ) としてエンコーディングする点で RFC1738 エンコーディング (rawurlencode() を参照) とは異なります。この関数を使用すると、文字列をエンコードして URL のリクエスト部分で使用することが簡単になります。また、変数を次のページに渡すのも簡単になります:
推奨: "PHP チュートリアル"
例 1. urlencode() 例
<?php echo '<a href="mycgi?foo=', urlencode($userinput), '">'; ?>
注: HTML エンティティと一致する変数には注意してください。 &、©、£ などの文字はブラウザによって解析され、予期される変数名の代わりに実際のエンティティが使用されます。これは明らかな混乱であり、W3C は数年にわたって人々にこのことについて警告してきました。参照アドレス: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP は、arg_separator .ini ディレクティブを通じて、パラメータ区切り文字を W3C が推奨するセミコロンに変更することをサポートしています。残念ながら、ほとんどのユーザー エージェントはフォーム データをセミコロン区切り形式で送信しません。より簡単な解決策は、区切り文字として & の代わりに & を使用することです。このために PHP の arg_separator を変更する必要はありません。そのままにして、htmlentities(urlencode($data)) を使用して URL をエンコードします。
例 2. urlencode() と htmlentities() 例
<?php echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">'; ?>
string urlencode (string str)
この文字列内の文字列を返します。 すべて非-_. を除く英数字はパーセント記号 (%) とその後に続く 2 桁の 16 進数に置き換えられます。 RFC 1738 で説明されているこのエンコーディングは、リテラル文字が特別な URL 区切り文字として解釈されないように保護し、トランスポート メディア (一部のメール システムなど) で使用される文字変換によって URL 形式が文字化けしないようにすることを目的としています。たとえば、FTP URL にパスワードを含める場合:
例 1. rawurlencode() 例 1
<?php echo '<a href="ftp://user:', rawurlencode('foo @+%/'), '@ftp.my.com/x.txt">'; ?>
または、 URL の PATH_INFO 構成 情報の一部を渡します:
例 2. rawurlencode() 例 2
<?php echo '<a href="http://x.com/department_list_script/', rawurlencode('sales and marketing/Miami'), '">'; ?>
デコード時に、対応して urldecode() と rawurldecode() を使用できます。したがって、 rawurldecode() はプラス記号 (' ') をスペースにデコードしませんが、 urldecode() はデコードできます。詳細な例は次のとおりです。
string urldecode ( string str)
指定されたエンコードされた文字列内の任意の %## をデコードします。デコードされた文字列を返します。
例 1. urldecode() example
<?php $a = explode('&', $QUERY_STRING); $i = 0; while ($i < count($a)) { $b = split('=', $a[$i]); echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])), ' is ', htmlspecialchars(urldecode($b[1])), "<br />\n"; $i++; } ?>
string rawurldecode (string str)
文字列、この文字を返します。文字列内のパーセント記号 (%) の後に 2 つの 16 進数が続く場合は、リテラル文字に置き換えられます。
例 1. rawurldecode() の例
<?php echo rawurldecode('foo%20bar%40baz'); // foo bar@baz ?>
ただし、urldecode() と rawurldecode() によってデコードされた文字列は UTF -8 形式であることに注意してください。 URL に中国語が含まれており、ページ設定が UTF-8 ではない場合、デコードされた文字列を正常に表示するには変換する必要があります。
もう 1 つ問題があります。つまり、取得された URL は %%nn n={0..F} の形式ではなく、%unnnn n={0..F} の形式です。 urldecode() と rawurldecode() は正しくデコードできないため、正しくデコードするには次の関数を使用する必要があります:
function utf8RawUrlDecode ($source) { $decodedStr = ""; $pos = 0; $len = strlen ($source); while ($pos < $len) { $charAt = substr ($source, $pos, 1); if ($charAt == '%') { $pos++; $charAt = substr ($source, $pos, 1); if ($charAt == 'u') { // we got a unicode character $pos++; $unicodeHexVal = substr ($source, $pos, 4); $unicode = hexdec ($unicodeHexVal); $entity = "&#". $unicode . ';'; $decodedStr .= utf8_encode ($entity); $pos += 4; } else { // we have an escaped ascii character $hexVal = substr ($source, $pos, 2); $decodedStr .= chr (hexdec ($hexVal)); $pos += 2; } } else { $decodedStr .= $charAt; $pos++; } } return $decodedStr; }
以上がPHP中国語URLトランスコードの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

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

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
