0

我一直试图弄清楚这一点,但猜想它在 PHP 中已经有一段时间了。

假设我有以下链接:

<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:duh@blah.com>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_replaceand strstr

请注意,字符串中的 URL 可能不止一个,可能是 1 到 100,或者根本没有我尝试了下面的方法,但由于某种原因,我得到了 0 的返回值。

只是似乎无法将其全部删除。

4

2 回答 2

0

您好,请尝试以下代码,它会对您有所帮助。这$url是您要更改的实际网址

function addhttp($url) {
    if (!preg_match("~^(?:f)tp?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}
于 2013-05-30T05:04:05.393 回答
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:duh@blah.com>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>
于 2013-05-30T05:08:31.727 回答