Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- array_walk($arr = preg_split('/s/', $text), function($val, $key){
- //так делать нельзя, но если очень хочется, то можно
- global $arr;
- if(!filter_var($val, FILTER_VALIDATE_EMAIL)) {
- unset($arr[$key]);
- }
- });
- <?php
- $text = '
- some@email.com
- not_email@test another@junk email@again.com
- @var notvar@
- some random text
- ';
- $pattern = '~[^s]+@[^s]+~';
- $output = array();
- //Захватываем все выражения, похожие на e-mail
- preg_match_all($pattern, trim($text), $matches);
- //Отсеиваем лишнее
- foreach($matches[0] as $key => $val) {
- $email = filter_var($val, FILTER_VALIDATE_EMAIL);
- if($email) {
- $output[] = $email;
- }
- }
- print_r($output);
- Array
- (
- [0] => some@email.com
- [1] => email@again.com
- )
- $mail = <<<EMAIL
- Мой тестовый текст, для того, что бы проверять и ловить по регулярному выражению email-ы
- Допустим тут будет мой емейл: mymail@gmail.com, а тут будет эмейл моего друга: myfriend@mail.ru.
- Еще, предположу, что тут будет email моей мамы: i_love_my_mam@yandex.ru и моего папы: i_love_my_father_to@rambler.ru
- Мыло брата и сестры: brother-mail@mail.vv.si, sister-mail@mail.vv.si
- EMAIL;
- $mail2 = <<<EMAIL2
- Отловит, например, super.user@e.mail, или user2@e.mail, или user@e1.mail. И не навалит много мусора, например, часто встречающееся в конце предложения "пиши мне на klopp@yandex.ru." (с точкой в конце), не говоря о тех же точках: после собаки, сдвоенных точках, и много другого мусора.
- EMAIL2;
- $arr = array();
- $ptrn = "/b([a-z0-9._-]+@[a-z0-9.-]+)b/i"; //вот мой маленький да удаленький шаблончик )
- preg_match_all($ptrn,$mail,$arr);
- echo("<pre>");
- print_r($arr[0]);
- echo("</pre>");
- Array
- (
- [0] => mymail@gmail.com
- [1] => myfriend@mail.ru
- [2] => i_love_my_mam@yandex.ru
- [3] => i_love_my_father_to@rambler.ru
- [4] => brother-mail@mail.vv.si
- [5] => sister-mail@mail.vv.si
- )
- Array
- (
- [0] => super.user@e.mail
- [1] => user2@e.mail
- [2] => user@e1.mail
- [3] => klopp@yandex.ru
- )
- /^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD
- preg_match_all( "/[^@s]++@S++/", $text, $result );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement