2010-11-08 57 views
1

有谁知道一个好的解决方案,可以从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})([email protected])@([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字符。它可能会意外地破坏一些数据,但这可能比披露更好。如果有人遇到这种情况,我会非常感兴趣。

+2

你问太多。你将不得不创建AI。 – metrobalderas 2010-11-08 20:22:48

+0

我能想到的最简单的解决方案是开发一组符合相关数据的正则表达式,并用某种通知替换匹配项(如_“联系信息已删除”_)。 – jwueller 2010-11-08 20:24:15

+0

您需要具体说明要删除的数据。您将无法击败文档中的隐藏通道。 – Incognito 2010-11-08 20:29:35

回答

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); 

对于网址: