foreach数组由限定符分隔

时间:2011-07-13 09:33:55

标签: php arrays foreach

现在,我正在读取数组并在数组上执行foreach循环以运行set脚本,在本例中为PHPmail。在该数组中,我让它100%工作以发送数组来更新主题文件。我想更新代码,以便脚本仍然可以在一个foreach循环上运行,但会读取两个单独的字符串(几乎实际上并行),这些字符串将由一个字符分隔...例如字符〜... < / p>

所以,假设“list”有以下内容 SUBJECT转到这里〜/ home / username / filename SUBJECT到这里〜/ home / username2 / filename2

现在,代码会在上面的每一行中读取为SubjectLiner并在主题中发送输入行。

我希望PHP将这些分开,这样当php运行时,它会将这两者分开。现在,没有〜或attachement组件,它工作得很好。 (或者很多人工作得很好......我想让一对一工作)..

所以期望的结果将在第一遍 SubjectLiner将是“SUBJECT Goes here” AttachmentLiner将是“/ home / username / filename” 然后在第二遍: SubjectLiner将是“SUBJECT去了这里” AttachmentLiner将是“/ home / username2 / filename2

下面是我正在测试的代码..我不知道如何基于限定符〜在上面的例子中划分..然后处理了两个字符串。

同样的事情可以通过两个与行匹配的单独文件来完成..但是风险会以指数方式向上发送错误的附件。

在一天结束时,我需要向具有不同主题(带空格和; s)和不同附件的同一收件人(服务器)发送例行电子邮件。我有85%的殴打。它是每行所需的双重信息。超级感谢任何评论。 THX。

<?php
require("class.phpmailer.php");

$addylist = file("list"); // Subject line feeder.

foreach($addylist as $SubjectLiner)
{
$mail = new PHPMailer();
$mail->IsSMTP();                                      // set mailer to use SMTP
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username = "username";  // SMTP username
$mail->Password = "yourpassword"; // SMTP password
$mail->From = "username";
$mail->FromName = "username";
$mail->AddReplyTo("FromAddy", "From Name");
$mail->WordWrap = 50;                                 // set word wrap to 50 characters
$mail->IsHTML(true);                                  // set email format to HTML
$mail->AddAddress("ToAddy", "To Name");
$mail->Body    = "";
$mail->AltBody = "";

$mail->Subject = $SubjectLiner;

$mail->AddAttachment("$AttachmentLiner");         // add attachments



if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}


}

?>

2 个答案:

答案 0 :(得分:0)

这里有具体问题吗?或者你很高兴你做到了,并希望世界看到它? :))

但是,你在这里缺少引用:

$mail->AddReplyTo("FromAddy, "From Name");

将其替换为

$mail->AddReplyTo("FromAddy", "From Name");

答案 1 :(得分:0)

分解$SubjectLiner并使用这两部分:

<?php
require("class.phpmailer.php");

$addylist = file("list"); // Subject line feeder.

foreach($addylist as $SubjectLiner)
{
    $SubjectLiner = explode("~",$SubjectLiner);
    $subject = $SubjectLiner[0];
    $attachment = $SubjectLiner[1];

    //$mail = .... Same as in your example

    $mail->Subject = $subject;
    $mail->AddAttachment($attachment);         // add attachments

    if(!$mail->Send())
    {
       echo "Message could not be sent. <p>";
       echo "Mailer Error: " . $mail->ErrorInfo;
       exit;
    }
}

?>