0

我总是与循环作斗争,特别是关联数组对我来说仍然是新事物,并试图克服它。我正在尝试设置一个表单,通过使用他们的 api 一次将多封电子邮件插入到我们的 sendy 电子邮件列表中。我成功地将第一封电子邮件插入到列表中,但剩余的电子邮件丢失了。非常感谢您的帮助!

PHP 下面:

<?php 
require('sendyLibrary.php');
$sendy = new SendyLibrary('3');
$email = $_POST['email'];

//$textareaContents = str_replace("\r", ',', $email);
$multipleEmails = explode("\r", $email);
foreach($multipleEmails as $key => $finalEmail) {
    $sendy->subscribe(array(
        'email' => $finalEmail
    ));
    echo 'email: ' . $finalEmail .'<br/>';
}?>

POST 方法的响应:

email   sam@testing.com samg@testing.com samgo@testing.com samgol@testing.com samgolu@testing.com

来自 POST 方法的来源:

email=sam%40testing.com%0D%0Asamg%40testing.com%0D%0Asamgo%40testing.com%0D%0Asamgol%40testing.com%0D%0Asamgolu%40testing.com

谢谢您的帮助!

4

1 回答 1

1

实际上,\r\n所有电子邮件之间都有一个中间部分。我假设 subscribe 方法将它们丢弃,因为当您展开数组时,\r您将在所有剩余的电子邮件中添加新行。看起来像:

array("email1@testing.com", 
      "\nemail2@testing.com", 
      "\nemail3@testing.com");

你应该像这样爆炸弦\r\n

$multipleEmails = explode("\r\n", $email);

另一种选择是修复发送 POST 的代码以提供更好的分隔字符串。

于 2013-09-25T16:07:56.950 回答