我有一种方法可以用来清除用户提交的数据中的输出。我可以传递选项以分别允许或禁止URL和电子邮件。过去直到现在,当我在不允许的URL和允许的电子邮件中使用它时,它的运行情况都很好。问题是我用来阻止URL的正则表达式也阻止了电子邮件地址上的域。如何阻止URL和域,但前提是它们不属于电子邮件地址?
我现有的代码;
// email address removal
if ( ! ISSET($options['email']) || $options['email'] === FALSE) {
$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = '<span class="muted">*</span>';
$string = preg_replace($pattern, $replacement, $string);
}
// url - link removal
if ( ! ISSET($options['url']) || $options['url'] === FALSE) {
$pattern = "/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i";
$replacement = '<span class="muted">**</span>';
$string = preg_replace($pattern, $replacement, $string);
}
慕沐林林