Skip to content
Advertisement

Find and replace emails and phone numbers in PHP

I was hoping for a little help on this, as it’s confusing me a little… I run a website that allows users to send messages back and forth, but on the inbox i need to hide both emails and phone numbers.

Example: This is how a sample email would look like.

Hi, my phone is +44 5555555 and email is jack@jack.com

I need it to be like this:

Hi, my phone is (phone hidden) and email is (email hidden)

Do you have any ideas ?… I really appreciate it!..

Advertisement

Answer

$x = 'Hi, my phone is +44 5555555 and email is jack@jack.com';
$x = preg_replace('/[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}/i','(phone hidden)',$x); // extract email
$x = preg_replace('/(?:(?:+?1s*(?:[.-]s*)?)?(?:(s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))s*(?:[.-]s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})s*(?:[.-]s*)?([0-9]{4})(?:s*(?:#|x.?|ext.?|extension)s*(d+))?/','(email hidden)',$x); // extract phonenumber
echo $x; // Hi, my phone is (phone hidden) and email is (email hidden)

kudo’s for the phonenumber regex to fatcat

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement