Frage

Weiß jemand, der eine gute Lösung, die von PHP verwendet werden kann, die effektiv Kontaktinformationen wie Telefonnummern, E-Mail-Adressen und vielleicht sogar Kontaktadresse aus einem Dokument entfernen werden?

Aktualisieren

Hallo Leute, hier ist das, was ich mit so weit kam, es funktioniert ziemlich gut.

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

hat jemand irgendwelche Ideen für Adressen, ich vielleicht denke mit einer Art und Weise kommen Stadt zu erkennen, RV-Zustand dann Streifen auch x Zeichen davor. Es könnte einige Daten versehentlich clobber aber das könnte besser sein, als Offenbarung. Ich würde wirklich daran interessiert zu hören, wenn jemand anderes in dieser ausgeführt wird.

War es hilfreich?

Lösung

Mit regulärem Ausdruck.

Sie können preg_replace verwenden, es zu tun.

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

für E-Mails:

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

für Urls:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top