我正在尝试传递一个url,用于创建iframe作为查询字符串的参数。因为我传递的网址包含&符号,我使用'urlencode'对网址进行编码,然后将其附加到查询字符串。
<?php
$url = "http://www.somesite.com/index.php?option=content&view=article&id=1234:some+article";
$url_encoded = urlencode($url);
?>
<a href="http://www.mysite.com/external_article_iframe/?url=<?php echo $url_encoded ?>" target="_blank"></a>
在我想要创建iframe的页面上,我使用$ _GET变量检索url参数。
<?php
$iframe_source = $_GET[$url];
?>
<iframe id="external-link-frame" src="<?php echo $iframe_source ?>"></iframe>
但是$ _GET只检索参数值的一部分直到编码的&符号。
<?php echo $_GET[$url]; //outputs http://www.somesite.com/index.php?option=content ?>
我必须做什么才能发送整个网址,包括属于自己查询字符串的参数。
更新:我可以通过对网址进行两次编码来实现这一目标
urlencode(urlencode($url));
答案 0 :(得分:0)
我认为rawurlencode()也会对&符号进行编码。
答案 1 :(得分:0)
我相信,你如何追加它,$ _GET函数认为&符号表示新的价值。我敢打赌如果你在$ iframe_view = $ _GET [$ view]之后做了它会输出文章。
如果您希望它获取完整的网址,我认为最好通过替换&amp;与其他东西签字然后一旦你拿到网址,然后将它们更换回&amp;迹象。