有没有人知道可以从php使用的一个好的解决方案,它可以有效地删除联系信息,如电话号码,电子邮件地址,甚至可能从文档中联系地址?
更新
嘿嘿,这是我到目前为止提出的,它运作得很好。function sanitizeContent($content)
{
// emails - even containing white space characters like this 't e s t @ ba d . co m'
$content = preg_replace('/([A-Za-x-0-9\s\_\.]{1,50})(?=@)@([A-Za-x-0-9\s\_\.]{1,50})/', '[email removed]', $content);
// urls
$content = preg_replace('/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i', '[link removed]', $content);
// phone numbers
$content = preg_replace('/(\d)?(\s|-|.|\/)?(\()?(\d){3}(\))?(\s|-|.|\/){1}(\d){3}(\s|-|.|\/){1}(\d){4}/', '[phone removed]', $content);
$content = preg_replace('/[0-9\.\-\s\,\/(x|ext)]{5,50}/', '[phone removed]', $content);
// addresses????
return $content;
}
有没有人对地址有任何想法,我想可能想出一种方法来检测城市,州拉链然后在此之前剥离x字符。它可能会意外地破坏一些数据,但这可能比披露更好。我真的很想知道是否有其他人遇到过这个问题。
答案 0 :(得分:1)
使用正则表达式。
您可以使用preg_replace来执行此操作。
$pattern = "/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $string);
电子邮件:
$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $string);
表示网址: