我想在参数中只获取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'。
怎么了?
我想获得整个网址字符串。包括&amp;,?或其他所有内容。
答案 0 :(得分:1)
您需要使用encodeURIComponent
对url参数进行编码。
答案 1 :(得分:0)
原因是您将编码用于其他编码。
第一个是:
prj.php?url=[somedata]
其中[somedata]是具有其他键/值集合的URL:
https://url/etc/search?key1=value1&key2=value2
如果url参数不是 urlencoded ,则无法将/prj.php
的参数与/search
的参数区分开来,则假设 all < / em>使用&key=value&key=value...
语法定义的参数都属于第一页。
诀窍是 url-encode url参数,但是你怎么做取决于上下文。
如果通过PHP以动态方式生成网址,请使用urlencode()
功能。
如果你的网址是硬编码的(不是通过PHP生成的),你可以为自己编写一个小工具来完成这项工作,或使用像http://www.opinionatedgeek.com/dotnet/tools/urlencode/Encode.aspx这样的在线编码器