PHP / Laravel 5.4 - парсинг списка через запятую, чтобы учесть одну и ту же строку или несколько строк? - PullRequest
0 голосов
/ 01 мая 2018

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

test@email.com, test2@email.com

ИЛИ несколько строк, разделенных запятой и пробелом (что непреднамеренно создает больше пробела):

test@email.com,
test2@email.com

Код php для первого варианта прост:

$addresses = explode(', ', $this->data['emails']); 

Который создает массив, подобный этому, когда вы многострочный:

array:1 [
  0 => """
    test@email.com,\n
    test2@email.com
    """
]

Кто-нибудь знает некоторую простую логику / регулярное выражение, чтобы учесть либо? Первый пример $this->data['emails'] представляет собой строку:

"test@email.com, test2@email.com"

И второй имеет специальные символы для учета:

"""
test@email.com, \n
test2@email.com
"""

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Вы можете использовать это:

$addresses = array_map('trim', explode(',', $this->data['emails']));
0 голосов
/ 01 мая 2018

Хорошо, разобрался:

    if (strpos($this->data['emails'], "\n")) {
        $addresses = explode(", \n", $this->data['emails']);
    } else {
        $addresses = explode(',', $this->data['emails']);
    }
...