2010-11-08 7 views
1

Est-ce que quelqu'un connaît une bonne solution qui peut être utilisée par php pour supprimer efficacement les informations de contact comme les numéros de téléphone, les adresses e-mail et même les adresses de contact d'un document?Supprimer automatiquement les informations de contact des documents

Mise à jour

Hey les gars, voici ce que je suis venu avec jusqu'à présent, cela fonctionne assez bien.

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

Est-ce que quelqu'un a des idées pour les adresses, je pense peut-être venir avec un moyen de détecter la ville, zip état puis dépouilleront x caractères avant. Il pourrait accidentellement certaines données, mais cela pourrait être mieux que la divulgation. Je serais vraiment intéressé d'entendre si quelqu'un d'autre a rencontré cela.

+2

Vous demandez trop. Vous devrez créer une IA. – metrobalderas

+0

La solution la plus simple à laquelle je puisse penser est de développer un ensemble d'expressions régulières qui correspondent aux données pertinentes et de remplacer les correspondances par une sorte de notice (comme _ "informations de contact supprimées" _). – jwueller

+0

Vous devez être précis sur les données que vous supprimez. Vous ne serez pas non plus en mesure de contourner les canaux cachés du document. – Incognito

Répondre

1

Utiliser une expression régulière.

Vous pouvez utiliser preg_replace pour le faire.

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

des e-mails:

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

pour urls:

Questions connexes