There was an error in the replacement.
It was:
But should be:
In the first code var host2='' this id+'@'+host1+'.'+host2 would always have a '.' (dot) at the end...
If you keep the first replacement then the search pattern array should be:
$patterns = array("/(^|[^]_a-z0-9-="'/])([a-z]+?)://([^rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+).([^rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([^rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@([a-z0-9-_.]+?).([^rn"()'<>[]]+)/i");
instead of:
$patterns = array("/(^|[^]_a-z0-9-="'/])([a-z]+?)://([^
rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+).([^
rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([^
rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@([^rn"()'<>[]]+)/i");
For some XOOPS release, this should be(which I found better):
$patterns = array(
"/(^|[^]_a-z0-9-="'/])([a-z]+?)://([^, rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+).([^, rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([^, rn"()'<>]+)/i",
"/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@([a-z0-9-_.]+?).([^, rn"()'<>[]]+)/i"
);
instead of:
$patterns = array("/(^|[^]_a-z0-9-="'/])([a-z]+?)://([^, rn"()'<>]+)/i", "/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+).([^, rn"()'<>]+)/i", "/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([^, rn"()'<>]+)/i", "/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@([^, rn"()'<>[]]+)/i");
By the way, I've noticed that in 2.2.3 the pattenrs array have been changed and the old one was in comment. For me the new array doesn't work well, it sometimes take texts after the mail or URL into account... Uncommenting the old, commenting the news works great.