将链接更改为重定向页面php

将链接更改为重定向页面php

问题描述:

How do i change a url in a string example :

This is a link <a href="http://google.com.au">http://google.com.au</a>

To something like this

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

EDIT:

What i'm trying to do is take a description entered by the end user, They might enter links in the description, i want to change all the links to make them GOTO a warning page, the warning page is ./warn.php?site=link

The string might look like this

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>

Ok here's what i tried:

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

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

Check this, although im not sure if you are really refering to this, just let me know the case then ---

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

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

EDIT version 1.0

Even it is on description box data you can fetch it via jquery or php like

$mylink = $_GET['desc_name_data']; 

Please be more specific with the problem :)

EDIT Version 1.1

Check this and let me know then --

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

You could have a look at preg_replace().

I'm not sure I understand your question, but urlencode may help.

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

If this isn't it, then please be a bit more specific with what you're trying to achieve and what you have tried.

EDIT:

Ok, you could try a HTML parser to extract the href from the link, then rewrite appropriately. This is likely to be more reliable that a regex.

You should still add urlencode if you're passing a url as a querystring.