0

クエリ文字列のパラメータとして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));

見てください:https ://stackoverflow.com/a/2433211/1359529

4

2 に答える 2

0

rawurlencode() はアンパサンドもエンコードすると思います。

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

于 2012-06-05T23:50:40.430 に答える
0

$_GET 関数は、アンパサンド記号が新しい値を取得することを意味していると考えています。その後 $iframe_view = $_GET[$view] とすれば記事が出力されるはずです。

完全な URL を取得したい場合は、& 記号を別のものに置き換えてエンコードし、URL を取得したら、それらを & 記号に戻すのが最善だと思います。

于 2012-06-05T23:52:30.497 に答える