我正在尝试将复杂的网址作为网址参数传递,但如果网址包含&例如,我想将以下链接作为参数传递
我正在尝试从用户那里获取一个URL作为参数,并将用户重定向到此URL。
我怎么能在PHP中处理这个?
整个故事:
我正在尝试对Flash文件进行一些广告分析,以便用户将Flash广告提交到包含指向所需网页的链接的网站。
现在,我的客户端需要知道这个flash文件被点击了多少次。为了解决这个问题,我将直到每个提交flash的人都写一个链接到我的客户端网页并将所需的URL作为参数传递如下< / p>
http://myclientwebpage.com/disp.php?link=www.google.com&id=16
通过这种方式,我可以更新我的数据库,并计算点击此链接的次数
答案 0 :(得分:15)
您写道:
我正在尝试将URL作为参数 来自用户并将用户重定向到此 URL。
但你没有回答这个问题 - 你如何获得该网址?用户如何为您提供?它是用<input type='text'/>
写的吗?或者用户是否点击了包含URL作为参数之一的链接?或者作为存储在DB中的某个URL的ID传递?
我想到的一个案例 - 在打开真实页面之前用纯文本替换URL并将用户发送到某些“重定向页面”,因此最终页面看不到可能包含某些安全数据的HTTP引用者(例如,会话ID) 。在这种情况下,你会写
<a href='redirect.php?link=<?php echo rawurlencode($url); ?>'>
<?php echo htmlspecialchars($url); ?>
</a>
而不是
<a href='redirect.php?link=<?php echo $url; ?>'>
<?php echo htmlspecialchars($url); ?>
</a>
答案 1 :(得分:0)
根据我的理解,您需要将&
替换为&
。
$url = str_replace('&', '&', $url);
保留 &
,用于分隔GET参数,&
用于在URL中编写文字&符号。