将php中的电子邮件列表分离到php数组
我有一个表单,可以提交给codeigniter电子邮件类并向我的客户发送电子邮件。我有一个简单的将php中的电子邮件列表分离到php数组,php,arrays,codeigniter,email,Php,Arrays,Codeigniter,Email,我有一个表单,可以提交给codeigniter电子邮件类并向我的客户发送电子邮件。我有一个简单的to输入字段 <input type="text" name="to" class="form-control"> 我真正的问题是,使用,逗号作为断点,将常规post数据从输入字段分解为数组的最快、最干净的方法是什么。使用PHP函数。更体面的PHP手册。 这是一个想法,但是如果你想在后端收到这些用逗号分隔的电子邮件,你应该使用$u GET或$u POST <?php //$
to
输入字段
<input type="text" name="to" class="form-control">
我真正的问题是,使用,
逗号作为断点,将常规post数据从输入字段分解为数组的最快、最干净的方法是什么。使用PHP函数。更体面的PHP手册。
这是一个想法,但是如果你想在后端收到这些用逗号分隔的电子邮件,你应该使用$u GET或$u POST
<?php
//$str = $_POST['emails'];
$str = "someone@me.com, yournamehere@example.com, myself@myowndomain.com";
print_r (explode(",",$str));
?>
语法:分解(分隔符、字符串、限制)。在您的例子中,您希望逗号作为分隔符,所以分隔符应该是逗号 试试看;它对我来说很好,同时添加并删除了所有空白
另外,还有第二种方法使用过滤方法来帮助防止使用PHP的过滤器
尽管有很多方法可以做到这一点,其中之一是简单地使用JS与+
按钮的组合来自动添加额外的输入,然后使用foreach
循环。您还可以explode()
和foreach()
。如果出现意外的空白,您可能还需要使用trim()
。看看这个答案,它实际上使用了内爆()实际上,我打算发表评论说“不要忘记空白”
,但我又读了一遍你的答案,发现我是多么愚蠢haha@Darren谢谢你Darren:)@Darren我注意到你的编辑;不要对自己太苛刻。我相信你会像下一个男人一样眼睛疲劳<代码>$next\u guy=“我也是”代码>;)如果我回答的话,我就不会比爆炸更进一步了。干得好,先生。@johncode我喜欢建造它,mille grazie signore John:)
<?php
//$str = $_POST['emails'];
$str = "someone@me.com, yournamehere@example.com, myself@myowndomain.com";
print_r (explode(",",$str));
?>
<?php
if(isset($_POST['submit'])){
$to = $_POST['to'];
$var = explode(',', $to);
$me = "you@example.com";
foreach($var as $mailto){
$mailto = preg_replace('/\s+/', '', $mailto); // remove all whitespace
$subject = 'Message subject ' . $name; // optional variable
$message = "Hello there.";
$headers = "From: {$me}\r\n";
$headers .= "Reply-To: {$mailto}\r\n";
mail($mailto, $subject, $message, $headers);
}
} // brace for isset
?>
<form action="" method="post">
<input type="text" name="to" class="form-control">
<input type="submit" name="submit" value="Send">
</form>
<?php
if(isset($_POST['submit'])){
$to = $_POST['to'];
$me = "you@example.com";
$to = preg_replace('/\s+/', '', $to);
foreach(explode(",", $to) as $mailto){
if(!filter_var($mailto, FILTER_VALIDATE_EMAIL))
{ die("Sorry."); }
else{
$subject = 'Message subject from ' . $name; // optional variable
$message = "Hello there.";
$headers = "From: {$me}\r\n";
$headers .= "Reply-To: {$mailto}\r\n";
if(mail($mailto, $subject, $message, $headers)){
echo "Mail sent to $mailto ";
}
}
}
} // brace for isset
?>
<form action="" method="post">
<input type="text" name="to" class="form-control">
<input type="submit" name="submit" value="Send">
</form>