
プログラム初心者です
デコードについておしえてください
検索結果のページングでエンコードとデコードを使おうと思っています
urldecodeは、文字列中にエンコードされた文字がなくても大丈夫ですか?
例えば、これだとデコードできますが
$search = urldecode("%E3%81%82");
これでも問題ないでしょうか?(デコードする文字がありませんみたいなエラーはありませんか?)
$search = urldecode("あ");
使い方おかしい!とかありましたらよろしくお願いします
質問2
試しにエンコードしないでページングしたらIE8で成功してしまったのですが、やっぱりエンコードしたほうがいいですよね?(対応できないブラウザはありますか?)
No.1ベストアンサー
- 回答日時:
質問1:
http://php.net/manual/ja/function.urldecode.php
ここに書いてある通り、urldecode はエンコード文字
%## とプラス記号 ('+') を変換するだけの機能で、
他の文字は放置されます。変換対象がないからと
いってエラーになることもありません。
質問2:
URLに使用できる文字というのは決まっています。
URLエンコードとは 『URLに使用できない文字を、使
用できる文字の範囲に収まるように変換する』操作
です。
URLとして使う文字は全てエンコードすべきです。
ブラウザによってはURLに使えない文字でも問題なく
動くこともありますが、それは『親切なブラウザだね』
程度に考えておきましょう。
※エンコードの問題は、ブラウザよりもサーバのほうで
ダメになるパターンのほうが多いですよ。
回答ありがとうございます
>質問1
これで安心して使えます。ありがとうございました
>質問2
サーバのほうでもダメになるのですね
全てエンコードするようにしました。
No.2
- 回答日時:
urldecode関数はデコード可能な部分のみデコードする関数です。
Qiita - [PHP] リクエストパラメータ・セッションに関するまとめ
http://qiita.com/mpyw/items/7852213f478e8c5a2802
こちらの記事で詳しく書いているのでご覧ください。GETに関して、
「パーセントエンコードされていない 半角スペース と 改行 と NULLバイト の混入は一切認められない。」
と書きましたが、これはリクエストヘッダーレベルで見たときのことを指します。ブラウザがリクエストヘッダーを生成する段階で自動的に無効な文字列をエンコードするように実装されていれば問題なく処理されるでしょう。ですがこれに依存するのは互換性を考えると当然避けるべきです、基本的にはすべてurlencode関数もしくはrawurlencode関数を通すようにしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
csvファイルについて教えて下さ...
-
PHP8でWarning:Undefined varia...
-
PHPSpreadsheetによる書き出し...
-
PHPの変わった閉じタグの必要性...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php文字列中のシングルクオート...
-
【比較演算子】偶数・奇数識別...
-
PHPで4桁の文字コード(SHIFTJI...
-
if ('0.0'=='0'){ の0.0とは何
-
include/require文へのバリデー...
-
PHPのGETとPOSTの処理を学習中...
-
hexdec(uniqid())でE+15が付く
-
PHPにおいて、配列データをMySQ...
-
拡張子PHP3のスクリプトを...
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
.phpと.incファイルの違いはな...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
onedrive にexcelファイルをア...
-
[php初心者]サイトを見てデータ...
-
makefile でファイルをコピーす...
-
【file_exists】ファイルが存在...
おすすめ情報