• ベストアンサー

引数を正しく読み込む方法

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... と&が入った値の場合、最後まで正しく読み込まれません。 これを読み込むにはどうしたらいいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Jirorian
  • ベストアンサー率58% (7/12)
回答No.3

&があると区切りになってしまって、GETのひとつの要素だと思われてしまいます。 URLは文字なら何でも使えるわけではなく、使える文字が決まっているのです。&もGETの解釈に使うため、URLとして使っていい文字に入っていません。 2さんがいわれているとおり、値に&持つ場合は16進コードにして渡してあげる必要があります。 使えない文字を使うために、16進コードに直すことをURLエンコードといいます。 コードについては下記サイトを参考にしてください。

参考URL:
http://php.rx78.mods.jp/?eid=45699
itmedia_search
質問者

お礼

回答ありがとうございます。 http://b.hatena.ne.jp/entry/http://www.google.com/search?lr=&ie=UTF-8&oe=UTF-8&q=%E5ではURLをエンコードしていないにもかかわらず最後までしっかりと読み込めているみたいです。 同じ方法で読み込むことは可能でしょうか?

その他の回答 (6)

  • taskuni
  • ベストアンサー率71% (49/69)
回答No.7

php.iniを直接編集すれば、サイト全体がそのような引数の受け取り方になってしまいますが大丈夫なんでしょうか。 いままでの回答から、設定方法などが推測できる知識を持っていないのなら、この方法はおすすめできません。

  • taskuni
  • ベストアンサー率71% (49/69)
回答No.6

phpの設定を変更するには、 php.iniを直接編集する方法や.htaccessに記述する方法 ini_set()関数を使う方法などがあります。

itmedia_search
質問者

お礼

回答ありがとうございます。 php.iniのどこをどのように編集したらよろしいのでしょうか? よろしくお願いします。

  • taskuni
  • ベストアンサー率71% (49/69)
回答No.5

&ごと変数として取り込みたいのであれば、 arg_separator.input の設定を変更するという手もあると思います。

itmedia_search
質問者

お礼

回答ありがとうございます。 どのように変更したらいいのでしょうか? よろしくお願いします。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>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)
回答No.2

そういう場合 & を %26 に 置き換えてやる必要があると思います。

itmedia_search
質問者

お礼

回答ありがとうございます。 以下のサイトは%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)
回答No.1

<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> とするとわかると思います。 特殊記号や漢字はすべてルールにあわせて 置き換えないといけません。

itmedia_search
質問者

お礼

回答ありがとうございました。

関連するQ&A