Как извлечь идентификатор электронной почты из поля textarea


Я использую cakephp. И у меня есть поле textarea, куда пользователи вставляют данные, я использую плагин tinymce для форматирования текста. Я предупредил пользователей, чтобы они не вводили номер телефона или адрес электронной почты внутри текстовой области. Но я не хочу рисковать.

Есть ли способ извлечь номер телефона и адрес электронной почты из textarea и заменить его чем-то вроде XXXX@gmail.com..

Я ценю любую помощь.

Спасибо.

2   3   2010-10-29 18:44:05

2 ответа:

Вот кое-что с моей головы для замены адреса электронной почты на скрытый:

$str = "My e-mail is shown@gmail.com Contact me for more details";
$str = preg_replace("/([a-zA-Z0-9\._]+)(@[a-zA-Z0-9\-\.]+)/", "hidden\\2", $str);
print($str);
Регулярное выражение электронной почты не самое лучшее, но оно работает для вашего примера. Вы можете получить более интересные регексы (электронные письма и номера телефонов) по адресу http://www.regexlib.com/ и использовать их с помощью простого preg_replace.

Вы могли бы: $string = "blabla@blablabla.com";

$parts = explode("@",$string);

\\$parts[0] contains the local part

\\$parts[1] contains the domain.

Имейте в виду, что (даже если это не является обычным), формат, определенный RFC 822, позволяет символу "@" появляться в кавычках. Это значит: "бл@бла" @blablabla.com является технически правильным.