2012-08-24 181 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

我剛剛更新了與我試過的帖子 –