Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php中的电子邮件列表分离到php数组_Php_Arrays_Codeigniter_Email - Fatal编程技术网

将php中的电子邮件列表分离到php数组

将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 //$

我有一个表单,可以提交给codeigniter电子邮件类并向我的客户发送电子邮件。我有一个简单的
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>