ホームページ バックエンド開発 PHPチュートリアル php urlencode() 関数は URL エンコーディング分析を実装します_PHP チュートリアル

php urlencode() 関数は URL エンコーディング分析を実装します_PHP チュートリアル

Jul 13, 2016 am 10:57 AM
php url urlencode 中国語 関数 存在する 成し遂げる コーディング 解析する 変化

phpでは、urlencode()関数は中国語を文字列エンコードに変換するもので、ブラウザで開いたときに中国語のURLが文字化けしたり間違ったりすることはありません。urlencode()を使用したエンコードをいくつか紹介します。具体的な詳細。

URLコード
(PHP 4、PHP 5)

urlencode — URL 文字列をエンコードする

バグを報告する 説明
文字列 urlencode (文字列 $str)
この機能を使用すると、文字列をエンコードして URL のリクエスト部分で使用することが簡単になり、次のページに変数を渡すことも簡単になります。

バグパラメータを報告する

ストラ
エンコードする文字列。

戻り値のバグを報告する

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

URLエンコードとは:

このツールは、それぞれエンコードとデコードの 2 つのメソッドを実装します。

中国語 -> GB2312 のエンコード -> %D6%D0%CE%C4
中国語 -> UTF-8 エンコード -> %E4%B8%AD%E6%96%87

HTML で URL エンコード:
GB2312としてエンコードされたHTMLファイルでは、
/中文.rar -> ブラウザは自動的に /%D6%D0%CE%C4.rar に変換します。 注: Firefox はデフォルトで UTF-8 エンコードで URL を送信するため、GB2312 エンコードで中国語の URL を適切にサポートしていませんが、私が試した ftp:// プロトコルは問題ないと考えられます。 Firefox

UTF-8としてエンコードされたHTMLファイルでは、

/中文.rar -> ブラウザは自動的に /%E4%B8%AD%E6%96%87.rar
に変換します。

PHP での URL エンコード:

コードは次のとおりですコードをコピー
//GB2312のエンコード

echo urlencode("中文-_. ")."n"; //%D6%D0%CE%C4-_.+
echo urldecode(“%D6%D0%CE%C4-_. “).”n” //中国語-_.
; echo rawurlencode(“中文-_. “).”n” //%D6%D0%CE%C4-_.%20
echo rawurldecode(“%D6%D0%CE%C4-_. “).”n” //中国語-_.
; ?>

-_ を除くすべての非英数字は、パーセント記号 (%) とそれに続く 2 つの 16 進数に置き換えられます。

urlencode と rawurlencode の違い:
urlencode はスペースをプラス記号 (+) としてエンコードします
rawurlencode はスペースをプラス記号 (%20) としてエンコードします

UTF-8 エンコードを使用したい場合は、2 つの方法があります:

1. ファイルを UTF-8 ファイルとして保存し、urlencode または rawurlencode を直接使用します。
2. mb_convert_encoding 関数を使用します。

コードは次のとおりですコードをコピー
$url = ‘/中文.rar’;

echo urlencode(mb_convert_encoding($url, ‘utf-8’, ‘gb2312’)).”n”;
echo rawurlencode(mb_convert_encoding($url, ‘utf-8’, ‘gb2312’)).”n”;
//http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
?>

例:

コードは次のとおりですコードをコピー

JavaScript での URL エンコード:

関数parseurl($url=””)

{
$url = rawurlencode(mb_convert_encoding($url, ‘gb2312’, ‘utf-8’));
$a = array(“%3A”, “%2F”, “%40”);
$b = array(“:”, “/”, “@”);
$url = str_replace($a, $b, $url);
$url を返します;
}
$url=”ftp://ud03:password@ud03.kinoko.name/中文/中文.rar”;
echo parseurl($url);
//ftp://ud03:password@ud03.kinoko.name/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
?>

コードは次のとおりです コードをコピー

%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20

encodeURI は、「:」、「/」、「;」、「?」、「@」、およびその他の特殊文字をエンコードしません。

コードは次のとおりです コードをコピー

/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar


注:

注: HTML エンティティに一致する変数には注意してください。 &、©、£ などの文字はブラウザによって解析され、予期される変数名の代わりに実際のエンティティが使用されます。これは明らかな混乱であり、W3C は数年にわたって人々にこのことについて警告してきました。参照アドレス: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2。

PHP は、arg_separator.ini ディレクティブを通じて、パラメーター区切り文字を W3C が推奨するセミコロンに変更することをサポートしています。残念ながら、ほとんどのユーザー エージェントはフォーム データをセミコロン区切り形式で送信しません。より簡単な解決策は、区切り文字として & の代わりに & を使用することです。このために PHP の arg_separator を変更する必要はありません。このままにして、htmlentities() または htmlspecialchars() を使用して URL をエンコードします。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632093.html技術記事 phpのurlencode()関数は、ブラウザで開いたときに中国語のURLが文字化けしたり間違ったりしないように中国語を文字列エンコーディングに変換する関数です...
使い方を紹介します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

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 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

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 は、

See all articles