0

最初に urlencode することなく、クエリ文字列で Web アドレスを受け入れることができる必要があるクライアント用のスクリプトをまとめようとしています。例は次のようになります。

http://foo.com/script.php?url=www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=software&ie=UTF8&qid=1341685530&sr=1- 1

ただし、 $_GET['url'] の内容をエコーアウトすると、次のようになります。

www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=ソフトウェア

したがって、基本的には最初のアンパサンドで窒息しているようです-別の変数であると考えているため、推測しています。

フォームの urlencoding 以外に、これを機能させるための秘訣はありますか? おそらくフォームから POST することもできますが、これはスクリプトのアイデアを無効にします。

4

2 に答える 2

1

この特定のユース ケースでは、$_SERVER['QUERY_STRING']代わりに を使用する必要があります。これにより、一度に完全なクエリ文字列が得られ、それを自分で分割できます。

あなたの例では、PHP は & が次の GET 変数の区切り文字であると想定しています。

于 2012-07-07T20:00:54.570 に答える
0

クエリパラメータを尋ねて、受け取ったURLに追加することができます。$ _GETの残りのパラメーターを適切な順序でリストし、それらを追加して$_GET['url']の末尾を追加します。

$_GET['url']
 + '&ie=' + $_GET['ie']
 + '&qid=' + $_GET['qid']
 + '&sr=' + $_GET['sr']

いつか余分なパラメータURLを取得する可能性があることに注意してください。 http://foo.com/script.php?url=www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=software&ie=UTF8&qid=1341685530&sr=1- 1&url = http:// someAmazoneStuff

于 2012-07-07T19:56:54.370 に答える