У меня есть блок текста, из которого я хочу извлечь действительные адреса электронной почты и поместить их в массив. До сих пор у меня есть ...В PHP, как извлечь несколько адресов электронной почты из блока текста и поместить их в массив?
$string = file_get_contents("example.txt"); // Load text file contents
$matches = array(); //create array
$pattern = '/[A-Za-z0-9_-][email protected][A-Za-z0-9_-]+\.([A-Za-z0-9_-][A-Za-z0-9_]+)/'; //regex for pattern of e-mail address
preg_match($pattern, $string, $matches); //find matching pattern
Однако, я получаю массив только с одним адресом. Поэтому я предполагаю, что мне нужно каким-то образом пройти через этот процесс. Как мне это сделать?
Большое спасибо! Сейчас я приближаюсь. Однако мой результат выглядит немного странным для меня. Кажется, я получаю массивы в моем массиве следующим образом: Array ([0] => Array ([0] => example @ slu.edu) [1] => Array ([0] => edu)) – HumbleHelper
Я ищу только один массив с каждым ключом, содержащим адрес электронной почты. – HumbleHelper
@HumbleHelper preg_replace_all создаст новые элементы массива для подматричек всего, что было в круглых скобках в исходном шаблоне. В круглых скобках вокруг последней части находится домен в вашем шаблоне. Чтобы исправить это, вы можете просто добавить $ matches = $ matches [0] в конце. Посмотрите также на ответ Клэй Хинсон. Он заслуживает принятого ответа. – stevendesu