2010-11-08 4 views
1

Кто-нибудь знает о хорошем решении, которое может быть использовано с php, что позволит эффективно удалить контактную информацию, такую ​​как номера телефонов, адреса электронной почты и, возможно, даже контактные адреса из документа?Автоматическое удаление контактной информации из документов

Update

Эй, ребята, вот что я придумал до сих пор, она работает очень хорошо.

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

Кто-нибудь есть какие-либо идеи по адресам, я имею в виду, может быть, придумать способ обнаружить город, штат почтовый индекс, то и полоса х символов до этого. Он может случайно клонировать некоторые данные, но это может быть лучше раскрытия. Мне было бы очень интересно услышать, если кто-то еще столкнется с этим.

+2

Вы просите слишком много. Вам нужно будет создать ИИ. – metrobalderas

+0

Самое простое решение, о котором я могу думать, это разработать набор регулярных выражений, соответствующих соответствующим данным, и заменить совпадения каким-либо уведомлением (например, «контактная информация удалена» _). – jwueller

+0

Вы должны указать, какие данные вы удаляете. Вы также не сможете победить скрытые каналы в документе. – Incognito

ответ

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

для URLs: