2013-05-30 20 views
0

我一直在試圖弄清楚這一點,但猜測它已經在PHP一段時間了。PHP - 使用已知的HTTP鏈接替換未知的FTP鏈接

說我有聯繫,如:

<a href="ftp://ftp.blah.com/duh/file.zip">Some Link</a> 
<a href="ftp://ftp.diffrentdomain.com/duh/file.zip">ftp://ftp.blah.com/duh/file.zip</a> 
<a href="ftp://duh:[email protected]>Cool</a> 
<a href="ftp://ftp.domain.com>1234</a> 
<a href="ftp.anotherdomain.com">What ever</a> 

我需要基本更換任何有那些擁有:

<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a> 

我試圖與preg_replacestrstr搞亂。

作爲一個說明有更多的一個網址在字符串可能是1至100或根本沒有我試過下面,我得到0由於某種原因返回。

只是似乎無法得到它去除所有這些。

回答

0

代碼實際網址:

<?php 
$str = '<a href="ftp://ftp.blah.com/duh/file.zip">Some Link</a> 
<a href="ftp://ftp.diffrentdomain.com/duh/file.zip"> 
ftp://ftp.blah.com/duh/file.zip</a> 
<a href="ftp://duh:[email protected]>Cool</a> 
<a href="ftp://ftp.domain.com>1234</a> 
<a href="ftp.anotherdomain.com">What ever</a> 
'; 

//replace every ftp link in $str 
$str = preg_replace('/<a href="ftp.*?<\/a>/s', 
'<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a>', 
$str); 
print $str; 

打印:

<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a> 
<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a> 
<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a> 
<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a> 
<a href="http://www.blah.com/register.php">http://www.blah.com/register.php</a> 
+0

Omg杜哈非常感謝這麼多6小時這樣做了它的樣子!非常感謝你! – user2435026

0

嗨,請嘗試下面的代碼它會幫助你。 這裏$url是要改變

function addhttp($url) { 
    if (!preg_match("~^(?:f)tp?://~i", $url)) { 
     $url = "http://" . $url; 
    } 
    return $url; 
} 
+0

槽糕試過,我需要做的多個URL字符串中大字符串留言板的想法是,如果你沒有註冊,你看到沒有鏈接,我有這個工作的HTTP和附件,似乎無法得到它的FTP鏈接。 – user2435026

+0

感謝您的幫助以及 – user2435026