如何从PHP中的字符串中删除电子邮件地址和链接?

JEa*_*gle 1 php string email hyperlink

我需要删除字符串中的所有电子邮件地址和链接,并将其替换为"[已删除]",我对如何执行此操作感到有点迷失.
有人可以帮我吗?
谢谢.

Jos*_*iah 18

您可以使用preg_replace来执行此操作.

对于电子邮件:

$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $string);
Run Code Online (Sandbox Code Playgroud)

对于网址:

$pattern = "/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $string);
Run Code Online (Sandbox Code Playgroud)

资源

PHP手册:http://php.net/manual/en/function.preg-replace.php

信用到期的信用:从preg_match联机帮助页获取的电子邮件正则表达式,以及从以下网址获取的URL正则表达式:http://www.weberdev.com/get_example-4227.html


tre*_*ace 6

尝试这个:

$patterns = array('<[\w.]+@[\w.]+>', '<\w{3,6}:(?:(?://)|(?:\\\\))[^\s]+>');
$matches = array('[email removed]', '[link removed]');
$newString = preg_replace($patterns, $matches, $stringToBeMatched);
Run Code Online (Sandbox Code Playgroud)

注意:您可以将一组模式和匹配项传递给 preg_replace 而不是运行它两次。