【发布时间】:2012-07-19 04:25:23
【问题描述】:
我正在尝试在 foreach 循环中执行 foreach 循环。
我有一个表单,用户输入一些文本并点击发送。在服务器站点上,我遍历包含电子邮件地址的数组并发送文本消息。
现在我还希望用户能够在文本区域中使用变量,例如 $name。 所以我的循环应该首先遍历电子邮件,然后用我的数组中的名称 str_replace 用户输入 $name 变量。
该循环适用于电子邮件部分 ($tlf),但不适用于替换 $name 部分。
有人能发现我做错了什么吗?
$message = stripslashes(strip_tags($_POST['message2']));
$tlf=array("name1","name2");
$test=array("mname1", "mname2");
$subject = "Hello world";
$from = "me@gmail.com";
$headers = "From: $from";
foreach($tlf as $name){
$to = $name. "@gmail.com";
foreach($test as $navn){
$message = str_replace('$navn', $navn, $message);}
mail($to,$subject,$message,$headers);
}
非常感谢。
编辑: 输出是发送的电子邮件。假设用户输入“hello $name”。 我希望它首先遍历 $tlf 数组,在这种情况下创建 2 封电子邮件。这在第一个循环中以 $to 的形式出现。这行得通。
现在下一个循环应该识别用户输入“hello $name”并循环通过 $test 数组替换用户 $name 变量。
输出将是 2 封电子邮件发送。
邮件输出: 至:name1@gmail.com 消息:你好 mname1
邮件输出: 至:name1@gmail.com 消息:你好 mname2
如果我需要更好地解释,请告诉我,对不起,我很难解释。
【问题讨论】:
-
结果哪里错了?
-
我忘了提到它确实输出了数组“mname1”中的第一个名字,但它并没有循环遍历数组。它每次输出 $test[0] ..
-
感谢 Nate 的回复。请看我最后的评论。
-
输出的部分在哪里?
-
请告诉我们您的所有问题。真的很难诊断出鬼魂。你期望什么,你会得到什么?