Как получить адрес электронной почты от длинной строки

У меня также было 404 с перенаправлениями WordPress на виртуальных хостах после обновления до Apache 2.4.6

В моем случае проблема была решена путем изменения «AllowOverride None» на «AllowOverride FileInfo» для каждой конфигурации каталога виртуальных хостов.

28
задан John Conde 15 August 2012 в 15:45
поделиться

6 ответов

Если вы не уверены, какая часть строки, разделенной пробелами, является адресом электронной почты, вы можете разделить строку пробелами и использовать

filter_var($email, FILTER_VALIDATE_EMAIL)

для каждой подстроки.

26
ответ дан 28 November 2019 в 02:20
поделиться

Если адрес электронной почты всегда находится в начале строки, самый простой способ получить его - просто разделить строку на все экземпляры символа пробела, а затем просто взять первое значение из полученного массива.

Конечно, убедитесь, что это что-то похожее на адрес электронной почты, прежде чем использовать его.

Подробнее см. функцию PHP 'split'.

2
ответ дан 28 November 2019 в 02:20
поделиться

Адреса электронной почты действительно сложно фильтровать с помощью регулярные выражения, потому что существует так много возможных допустимых символов. Это можно сделать, но вам, возможно, придется немного подправить его, чтобы получить именно то, что вам нужно.

Вы можете начать с чего-то вроде этого:

$string = "user@domain.com MIME-Version: bla bla bla";
$matches = array();
$pattern = '/[A-Za-z0-9_-]+@[A-Za-z0-9_-]+\.([A-Za-z0-9_-][A-Za-z0-9_]+)/'
preg_match($pattern,$string,$matches);

И тогда $ match должны содержать ваш адрес электронной почты.

3
ответ дан 28 November 2019 в 02:20
поделиться

Если он действительно разделен пробелами:

php > $matches = array();
php > preg_match('/^[^ ]*/', $string, $matches);
php > print_r($matches[0]);
user@domain.com
0
ответ дан 28 November 2019 в 02:20
поделиться

Взгляните на Регулярные выражения в PHP .

С помощью регулярных выражений вы можете идентифицировать любой текстовый шаблон в заданной строке. Они невероятно полезны. Так что, хотя вы можете пока придерживаться копирования и вставки фрагмента кода из другого ответа, вам следует подумать о том, чтобы вникнуть в него немного подробнее.

Сначала это может быть немного сложно, но это определенно стоит усилий.

0
ответ дан 28 November 2019 в 02:20
поделиться

Соответствует обычному выражение вроде - ([A-Za-z0-9 -] +) @ ([A-Za-z0-9]) \\. ([az] {3}) или что-то подобное.

0
ответ дан 28 November 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: