我正在尝试传递一个用于创建 iframe 的 url 作为查询字符串的参数。因为我传递的 url 包含一个 & 符号,所以我使用 'urlencode' 对 url 进行编码,然后将其附加到查询字符串中。
<?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 ?>
我必须做什么才能发送整个 url,包括作为其自身查询字符串一部分的参数。
更新:我可以通过对 url 进行两次编码来做到这一点
urlencode(urlencode($url));