2012-08-24 128 views
-3

我要如何改变一个字符串的URL例如:更改链接重定向页面PHP

这是一个链接<a href="http://google.com.au">http://google.com.au</a>

要像这样

这是一个警告页面链接<a href="./warn.php?link=http://google.com.au">http://google.com.au</a>

编辑:

我想要做的是采取最终用户输入的描述,他们可能会输入链接在说明,我想改变所有的链接,使他们转到第一个警告页面,警告页面./warn.php?site=link

字符串可能看起来像这样

This is a awesome description <a href="google.com.au">Google</a> and this another link <a href="http://google.com.au/images">Google images</a> 

确定这里是我的尝试:

$descc = mysql_real_escape_string($_POST['description']); 

$descc = preg_replace('"\b(http://\S+)"', '<a href="./warn.php?site='.base64_encode(.'$1'.).'">$1</a>', $descc); 
+2

请更具体一点。你已经尝试了什么? – DaveP

回答

1

检查这一点,虽然林不知道如果你真的指的这一点,只是让我知道的话,那么---

$mylink = "http://google.com.au"; 

This a warning page link <a href="./warn.php?link=<?php echo $mylink ?>">http://google.com.au</a> 

编辑版本1.0

即使它是在描述箱数据,您可以像通过jQuery或PHP把它拿来

$mylink = $_GET['desc_name_data']; 

请更具体的问题:)

编辑版本1.1

检查这一点,让我然后知道 -

echo preg_replace('(<a href="http://\S+)', '<a href="./warn.php?site='.'google.com.au'.'">google.com.au', $descc); 
+0

不是什么即时寻找,因为字符串是由用户输入到描述框中,我希望在那里的所有链接都改为警告页面 –

+0

这不是我的意思男人,说例如我输入这是一个描述'Link 1而且这也是Link 2' –

+0

@ShaneEilia哈哈我知道但是......我认为你需要一些时间来构建你的问题,beter提供一些代码暗示,究竟是怎么回事..然后,我们一定会以更好的方式帮助你:) – swapnesh

0

你可以看看preg_replace()

0

我不知道我理解你的问题,但urlencode可能会有帮助。

<a href="./warn.php?link=<?php echo urlencode('http://google.com.au'); ?>">http://google.com.au</a> 

如果不是它,那么请更具体一点与你想达到和what you have tried什么。

编辑:

好吧,你可以尝试HTML parser提取从链接中的href,然后适当地改写。正则表达式可能更可靠。

如果您将URL作为查询字符串传递,您仍然应该添加urlencode。

+0

我刚刚更新了与我试过的帖子 –