Автоматическое удаление контактной информации из документов

StackOverflow https://stackoverflow.com/questions/4127674

Вопрос

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

Это было полезно?

Решение

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

Вы можете использовать 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-адресов:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top