Php 传出url剥离字符

Php 传出url剥离字符,php,redirect,Php,Redirect,我们使用一个传出的url页面将用户引导到外部网站,这是一种不正常的艺术风格 我遇到的问题是推特订阅源,我们的重定向条/来自url的twitterusername 我们的php是: <? $goto = $_GET['url']; $referrer = $_SERVER['HTTP_REFERER']; ?> 但是,转到链接变成: http://twitter.com/ 你知道为什么吗,我有一个金发女郎的时刻这可能是因为你没有在传入的URL中正确编码字符。之后的所有内容都是本地锚

我们使用一个传出的url页面将用户引导到外部网站,这是一种不正常的艺术风格

我遇到的问题是推特订阅源,我们的重定向条/来自url的twitterusername

我们的php是:

<?
$goto = $_GET['url'];
$referrer = $_SERVER['HTTP_REFERER'];
?>
但是,转到链接变成:

http://twitter.com/

你知道为什么吗,我有一个金发女郎的时刻

这可能是因为你没有在传入的URL中正确编码字符。之后的所有内容都是本地锚,不会发送到服务器。因此,如果您有,那么之后的所有内容都将被解释为本地锚,而不是发送到您的服务器。您需要对参数进行URL编码

使用

你需要使用。就这样

然后做一些类似的事情

$referrer = $_SERVER['HTTP_REFERER'];

echo 'go.php?url=' . urlencode($referrer);
http://twitter.com/!/twitterusername将被编码为http%3A%2F%2Ftwitter.com%2F%23%21%2Ftwitterusername,这是您所需要的

当您将它发送到中间页面时,您需要转到url,并在回显它之前将其保存

在包含原始链接的页面中,您需要使用

<a href="<?=urlencode("http://twitter.com/#!/twitterusername")?>">Twitter</a>

这个代码似乎不起作用:是的,你有。当您回显或记录$goto和$REFERER时使用,它们的值是什么?goto值是,REFERER是
$referrer = $_SERVER['HTTP_REFERER'];

echo 'go.php?url=' . urlencode($referrer);
<a href="<?=urlencode("http://twitter.com/#!/twitterusername")?>">Twitter</a>
$goto = urldecode($_GET['url']);