Автоматическое удаление контактной информации из документов - PullRequest
1 голос
/ 08 ноября 2010

Кто-нибудь знает хорошее решение, которое можно использовать с 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 символов. Это может случайно забить некоторые данные, но это может быть лучше, чем раскрытие. Мне было бы действительно интересно услышать, столкнулся ли кто-нибудь еще с этим.

1 Ответ

1 голос
/ 08 ноября 2010

Используйте регулярное выражение.

Для этого можно использовать 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);

для URL:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...