0

パラメータでURL文字列だけを取得したい。だから私は以下にコーディングしました:

//In my HTML file.
<script>
document.write('<iframe id="ifr1" 
src="http://{domain}/prj.php?url=https://www.google.co.kr/search?sugexp=chrome,mod=3&sourceid=chrome&ie=UTF-8&q=url+utf8+encoding#sclient=psy-ab&hl=ko&newwindow=1&prmdo=1&tbm=klg&q=google&oq=google&aq=f&aqi=g10&aql=&gs_l=serp.3..0l10.2207859.2208404.3.2208459.6.4.0.1.1.3.496.1353.2-2j1j1.4.0...0.0.O1lbexylHQM&pbx=1&prmdo=1&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=b8fee9fdb4e7f90&biw=1440&bih=828&a=' +'asdf'+" width="100%" height="100%" frameborder="0">   </iframe>');
</script>

//In my php file
$message = $_GET['url'];
echo("$message");

しかし、「https://www.google.co.kr/search?sugexp=chrome,mod=3」しか表示されません。

どうしたの?

URL文字列全体を取得したい。&、?、またはその他すべてを含みます。

4

2 に答える 2

1

encodeURIComponenturl パラメータをエンコードするために使用する必要があります。

于 2012-06-09T04:17:53.217 に答える
0

その理由は、エンコーディングを別のエンコーディングに使用するためです。

1 つ目は次のとおりです。

prj.php?url=[somedata]

[somedata] は、別のキー/値コレクションを持つ URL です。

https://url/etc/search?key1=value1&key2=value2

url パラメータがurlencoded/prj.phpでない場合、 のパラメータと のパラメータを区別する方法がありません。構文で定義されたすべてのパラメータはすべて最初のページに属して/searchいると見なされます。&key=value&key=value...

トリックはurl パラメーターをurl エンコードすることですが、その方法はコンテキストによって異なります。

URL が PHP を介して動的に生成される場合は、urlencode()関数を使用します。

If your url is hard-coded (not generated via PHP), you can write for yourself a little PHP tool to do the job, or use an online encoder like http://www.opinionatedgeek.com/dotnet/tools/urlencode/Encode.aspx

于 2012-06-09T06:29:26.090 に答える