- ベストアンサー
引数を正しく読み込む方法
PHPで引数を読み込む際に okwave.php?url=http://www.google.co.jp/search?hl=ja&safe=off&rls=GGGL%2CGGGL%3A2005-09%2CGGGL%3Aja&q=%E6%97%A5%E6%9C%AC&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= となった場合、...off&rls... と&が入った値の場合、最後まで正しく読み込まれません。 これを読み込むにはどうしたらいいのでしょうか? よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
&があると区切りになってしまって、GETのひとつの要素だと思われてしまいます。 URLは文字なら何でも使えるわけではなく、使える文字が決まっているのです。&もGETの解釈に使うため、URLとして使っていい文字に入っていません。 2さんがいわれているとおり、値に&持つ場合は16進コードにして渡してあげる必要があります。 使えない文字を使うために、16進コードに直すことをURLエンコードといいます。 コードについては下記サイトを参考にしてください。
その他の回答 (6)
- taskuni
- ベストアンサー率71% (49/69)
php.iniを直接編集すれば、サイト全体がそのような引数の受け取り方になってしまいますが大丈夫なんでしょうか。 いままでの回答から、設定方法などが推測できる知識を持っていないのなら、この方法はおすすめできません。
- taskuni
- ベストアンサー率71% (49/69)
phpの設定を変更するには、 php.iniを直接編集する方法や.htaccessに記述する方法 ini_set()関数を使う方法などがあります。
お礼
回答ありがとうございます。 php.iniのどこをどのように編集したらよろしいのでしょうか? よろしくお願いします。
- taskuni
- ベストアンサー率71% (49/69)
&ごと変数として取り込みたいのであれば、 arg_separator.input の設定を変更するという手もあると思います。
お礼
回答ありがとうございます。 どのように変更したらいいのでしょうか? よろしくお願いします。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>URLをエンコードしていないにもかかわらず & を &に置き換えているということだと思います。 (URLに実体参照が規約的に使用できるのかどうかちょっと確信がありませんが) 参考: http://ja.wikipedia.org/wiki/URL http://ja.wikipedia.org/wiki/%E5%AE%9F%E4%BD%93%E5%8F%82%E7%85%A7 何だったら、直接?以下を自分で調べると言う手段も考えられると思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
そういう場合 & を %26 に 置き換えてやる必要があると思います。
お礼
回答ありがとうございます。 以下のサイトは%26には置き換えていないのに最後まで読み込めているみたいです。 http://b.hatena.ne.jp/entry/http://www.google.com/search?lr=&ie=UTF-8&oe=UTF-8&q=%E5 これと同じ方法で引数を読み込みにはどうしたらいいのでしょうか?
- yambejp
- ベストアンサー率51% (3827/7415)
<form action="okwave.php" method ="get"> <input type=text name="url" value="http://www.google.co.jp/search?hl=ja&safe=off&rls=GGGL%2CGGGL%3A2005-09%2CGGGL%3Aja&q=%E6%97%A5%E6%9C%AC&btnG=Google+%E6%A4%9C%E7%B4%A2&lr="> <input type=submit value="send"> </form> とするとわかると思います。 特殊記号や漢字はすべてルールにあわせて 置き換えないといけません。
お礼
回答ありがとうございました。
お礼
回答ありがとうございます。 http://b.hatena.ne.jp/entry/http://www.google.com/search?lr=&ie=UTF-8&oe=UTF-8&q=%E5ではURLをエンコードしていないにもかかわらず最後までしっかりと読み込めているみたいです。 同じ方法で読み込むことは可能でしょうか?