function decodeCsv($string, $delimiter = ';') { if ($string == '') { return []; } $delimiter == '' or $delimiter = $delimiter[0]; $simple = true; $array = []; $row = []; $col = ''; for ($pos = 0, $length = strlen($string = normalizeLineBreaks($string)); $pos < $length;) { switch ($char = $string[$pos++]) { case '"': if ($simple) { if ($col === '') { $simple = false; } else { $col .= '"'; } } else { if ($pos < $length && $string[$pos] === '"') { $col .= '"'; $pos++; } else { $simple = true; } } break; case $delimiter: case "\n": if ($simple) { $row[] = $col; $col = ''; if ($char === "\n") { $array[] = $row; $row = []; } break; } default: $col .= $char; } } $row[] = $col; $array[] = $row; return $array; }
protected function _MAIL_SEND($elem) { loadCommon('mail'); $mail = new Mail\Mail($this->getMailMessage($elem)); $original = ini_set('sendmail_from', $mail->sender_email); $e = null; try { if (!mail(Mail\Mail::createAddressList($mail->to, ','), Mail\Mail::encodeHeader($mail->subject), normalizeLineBreaks($mail->createBody()), normalizeLineBreaks($mail->createHeader()), "-oi -f {$mail->sender_email}")) { throw new \Exception('Unable to send mail'); } } catch (\Exception $e) { } ini_set('sendmail_from', $original); if ($e) { throw $e; } }