如何编码,发送查询和检索网址

时间:2012-06-05 23:43:44

标签: php get urlencode

我正在尝试传递一个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));

看看:https://stackoverflow.com/a/2433211/1359529

2 个答案:

答案 0 :(得分:0)

我认为rawurlencode()也会对&符号进行编码。

http://us3.php.net/manual/en/function.rawurlencode.php

答案 1 :(得分:0)

我相信,你如何追加它,$ _GET函数认为&符号表示新的价值。我敢打赌如果你在$ iframe_view = $ _GET [$ view]之后做了它会输出文章。

如果您希望它获取完整的网址,我认为最好通过替换&amp;与其他东西签字然后一旦你拿到网址,然后将它们更换回&amp;迹象。