PHP-用已知的HTTP链接替换未知的FTP链接
我一直在试图弄明白这一点,但我想在PHP中已经有一段时间了 假设我有以下链接:PHP-用已知的HTTP链接替换未知的FTP链接,php,preg-replace,Php,Preg Replace,我一直在试图弄明白这一点,但我想在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 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\u replace
和strstr
请注意,字符串中有多个url可能是1到100,或者根本没有。我尝试了下面的方法,由于某种原因,我得到了0的返回值
似乎无法将其全部删除。您好,请尝试下面的代码,它将帮助您。 此处
$url
是您要更改的实际url
function addhttp($url) {
if (!preg_match("~^(?:f)tp?://~i", $url)) {
$url = "http://" . $url;
}
return $url;
}
代码:
Hrm尝试过我需要它在一个字符串中创建多个URL一个大字符串一个留言板想法是如果你没有注册,你看不到任何链接我有这个用于http和附件的链接似乎无法用于ftp链接。也感谢你的帮助omg duh非常感谢这6个小时,这就完成了它看起来的技巧!非常感谢你!
<?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>