Это то, что я бы сделал,
$emails = array_filter(array_map('trim', explode(',', $_POST['email'])));
Разнесение разбивает строку на массив на основе первого аргумента array_map, работает как цикл и применяет к каждому элементу обрезку, которая обрезает белыйпробел (удаляет пустые места с обеих сторон).Фильтр массива удаляет любые ложные элементы массива.Такие как '' пустые строки.
Так что это заботится о таких вещах, как
example@email.com, ,,someotheremail@email.com
Вывод
array(
'example@email.com',
'someotheremail@email.com'
)
, если вы хотите быть по-настоящему гибким, сделайте это
$emails = array_filter(array_map('trim', preg_split('/(,|\||\s)/', $_POST['email'])))
Который выполняет те же действия, что и выше, но позволяет использовать пробелы или запятые в качестве разделителей.