クエリ文字列のパラメータとしてiframeを作成するためのURLを渡そうとしています。渡すURLにはアンパサンドが含まれているため、URLを「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 ?>
独自のクエリ文字列の一部であるパラメータを含むURL全体を送信するにはどうすればよいですか。
更新:URLを2回エンコードすることでそれを行うことができます
urlencode(urlencode($url));