
PHPのGETとPOSTの処理を学習中なのですが、valueに日本語が入力されていた場合の処理について分からない点があります。
POSTやGETから送信された日本語の値がどの時点で再び日本語に変換されているのかということです。
たとえば以下のようなphpファイルにブラウザからアクセスした場合、
<?php
$static = $_GET["static"];
print $static;
?>
<form method="GET">
<textarea name="static">
静的
</textarea>
<input type="submit" name="submit_button" value=" 送 信 " />
</form>
ブラウザのアドレスバーには"?static=静的%0D%0A&submit_button=+送+信+"という文字列が表示されています。
この"%0D%0"というのは、URLエンコードされた文字列らしいのですが、上記のphpファイル上の"print $static;"部分の表示ではしっかりと日本語として表示されています。
私は上記のソース上のどこの部分でURLエンコードされた文字列が再び日本語として表示されるよう変換されているか分かりません。
何卒ご教授頂けますようお願い致します。
No.2ベストアンサー
- 回答日時:
よくある質問の中に、同じような疑問に対する答えがあります。
裏を返せば、ブラウザを通さずデータをやり取りする場合、その作業はスクリプト製作者に任されるということです。
参考URL:http://www.php.net/manual/ja/faq.html.php
回答ありがとうございます。
ブラウザを通さない場合はエンコードもPHPでやらなければならないということですね。
教えていただいたURLの中に質問に対する回答が完全に掲載されいて、疑問が解けました。
" フォームの内容を送信するとき、GET か POST かにかかわらず data は ブラウザによって URL エンコードされ、PHP によって URL デコードされます。 要は、URL エンコード/デコードを自分で行う必要はなく、これらの処理は すべて自動的に行われると言うことです。"
http://www.php.net/manual/ja/faq.html.php
大変勉強になりました。ありがとうございます。
No.1
- 回答日時:
>ブラウザのアドレスバーには"?static=静的%0D%0A・・・
「%0D%0A」はwindowsの改行マークですね
「静的」と日本語がブラウザで表示されているようにみえますが
実際にサーバーに送られているデータはエンコードされたものに
なっているはずです。(ブラウザが見やすくしてくれてるだけ)
そのURLを一度ブックマークしてみて、その詳細をみれば
わかると思います。
>URLエンコードされた文字列が再び日本語として表示されるよう変換されているか
エンコードされたデータはサーバーで参照される際に自動で
デコード評価されます。
回答ありがとうございます。
ご指摘の通り、私がエンコードされたと考えていた文字列は改行マークだったようです。
教えていただいたとおり、ブックマークしてURLを閲覧したところ、アドレスバーに表示されたものよりも遙かに長い、日本語
がエンコードされた文字列が含まれていました。
その後は、サーバーがphpによってデコードしているという解釈で良いでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
PHPSpreadsheetによる書き出し...
-
EC-CUBEをeclipseからコンパイ...
-
php エラー
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
php エラー
-
phpinfo で MySQL のバージョン...
-
コメント機能に返信欄を矢印で...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php文字列中のシングルクオート...
-
GETの値について
-
include/require文へのバリデー...
-
特定の漢字に\\マークが入って...
-
PHP3の文字化け
-
外部参照のランダムリンクについて
-
PHPにおいて16進数のアスキー文...
-
PHPのGETとPOSTの処理を学習中...
-
PHPのエスケープシーケンスに関...
-
0dで始まる文字列の比較がうま...
-
パラメーター付きのURLをリダイ...
-
PHPでカンマ区切り文字列を数値...
-
PHPにおいて、配列データをMySQ...
-
リダイレクトできません。クエ...
-
PHPでPが2個あるので分かりず...
-
検索に関する文字コード
-
仕様ならしようがない(洒落)
-
hexdec(uniqid())でE+15が付く
-
urldecodeについて
-
if ('0.0'=='0'){ の0.0とは何
おすすめ情報