2013-05-30 21 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