PHP - 用于在$ _GET中存储URL的正确协议

时间:2012-11-27 06:57:59

标签: php url get store external-url

在您自己的php页面的URL中存储其他网站URL的正确协议是什么?

例如,如果我想存储google,那就很容易了。

MySite.com/test.php?url=http://www.google.com


但是比http://www.google.com更复杂的URL呢,就像我想存储另一个网站的PHP页面一样。

(例如http://www.AnotherSite.com/page1.php?key=value&key2=value2&key3=value3

然后我如何将它存储在我的PHP页面的URL中?你替换所有的“&”吗?带有“\&”的符号短语?有更好的方法吗?这甚至可以起作用吗?


感谢!!!

4 个答案:

答案 0 :(得分:2)

只需encode个网址。您可以使用PHP函数urlencode()urldecode()

答案 1 :(得分:2)

如果您不想考虑它:

$url = 'mysite.com/test.php?' . http_build_query(array(
    'url' => $anything_you_want,
));

否则:

$url = 'mysite.com/test.php?url=' . urlencode($anything_you_want);

您也可以使用rawurlencode()。值得注意的是,它遵循RFC 3986

进一步阅读:

http_build_query()   urlencode()   rawurlencode()

答案 2 :(得分:2)

如果您想将整个网址用作一个参数,只需使用urlencode()对其进行编码:

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

示例:

$url = 'http://www.AnotherSite.com/page1.php?key=value&key2=value2&key3=value';
echo 'http://MySite.com/test.php?url='.urlencode($url);

答案 3 :(得分:2)

您可以对网址使用编码。 PHP内置了非常简单的方法来实现这一点。

http://php.net/manual/en/function.urlencode.php