PHP模糊的电子邮件地址修改



有时我的内容中有电子邮件地址-但我想用javascript模糊它们。

我做了一个前端的javascript解决方案,重建他们,但只能从一定的格式。

这是我需要HTML在电子邮件地址的格式:

<a email-a="firstbit" email-b="secondbit.com"></a>
然后Javascript运行一些代码并将HTML转换为如下格式:
<a href="mailto:firstbit@secondbit.com">[click to email]</a>

这些都很好。我的问题是如何让php从一个充满随机内容的HTML变量转换所有电子邮件地址,从所见即所得到不同的格式。如convert this:

bla bla bla firstbit@secondbit.com bla bla bla

:

bla bla bla <a email-a="firstbit" email-b="secondbit.com"></a> bla bla bla 

我猜最后是这样的:

function change_emails($html){
// preg replace?
}

// $html is a variable full of HTML contents
$html = change_emails($html);

我已经知道如何在单个字符串中更改电子邮件地址-但我不知道如何更改所有可能在一大块内容中散布的电子邮件地址。

它使用一个相当简单的正则表达式(来自这个答案)来检测电子邮件地址,并将它们替换为html模板。

$pattern = "/([a-zA-Z0-9+._-]+)@([a-zA-Z0-9._-]+.[a-zA-Z0-9_-]+)/";
$template = '<a email-a="%s" email-b="%s">[click to email]</a>';
$str = "bla bla bla firstbit@secondbit.com bla bla bla";
return preg_replace_callback($pattern, function($matches) use ($template) {
[, $local, $host] = $matches;
return sprintf($template, $local, $host);
}, $str);

Demo ~ https://3v4l.org/CsPg3


使用正则表达式正确检测电子邮件地址可能相当复杂,所以如果你需要更全面的东西,请查看这个网站~ http://emailregex.com/

相关内容

  • 没有找到相关文章

最新更新