[英]PHP str_replace in while loop
The while function in str_replace only returns the first line of information. str_replace中的while函数仅返回第一行信息。 This is email template.
这是电子邮件模板。
// I have a macro in my message. (member name)
$message = "Hi {%write_member_name%} how are you?";
$connect = mysql_query("SELECT * FROM members");
while($row=mysql_fetch_array($connect)){
$membername = $row["member_name"];
$message = str_replace('{%write_member_name%}', $membername ,$message);
echo $message."<br/>";
}
The result I should have. 我应该有的结果。
Hi Jack how are you? 嗨, 杰克 ,你好吗?
Hi Mike how are you? 嗨, 迈克 ,你好吗?
Hi Alex how are you? 嗨, 亚历克斯 ,你好吗?
But I get the wrong result: 但是我得到了错误的结果:
Hi Jack how are you? 嗨, 杰克 ,你好吗?
Hi Jack how are you? 嗨, 杰克 ,你好吗?
Hi Jack how are you? 嗨, 杰克 ,你好吗?
If I do not use the str_replace function it works correctly. 如果我不使用str_replace函数,它将正常工作。
How do I use the str_replace function in while loop? 如何在while循环中使用str_replace函数? Thank you.
谢谢。
$connect = mysql_query("SELECT * FROM members");
while($row=mysql_fetch_assoc($connect)){
$message = "Hi {%write_member_name%} how are you?";
$membername = $row["member_name"];
$message = str_replace('{%write_member_name%}', $membername ,$message);
echo $message."<br/>";
}
You use sprintf() for this 您为此使用sprintf()
Replace the percent (%) sign by a variable passed as an argument:
将百分数(%)替换为作为参数传递的变量:
$membername = "";
$connect = mysql_query("SELECT * FROM members");
while ($row = mysql_fetch_array($connect)) {
$membername = $row["member_name"];
$message = sprintf("Hi %s how are you?", $membername); // pass argument here
echo $message . "<br/>";
$membername = "";
}
mysql_* functions officially deprecated and removed in PHP 7.0.0.
mysql_ *函数在PHP 7.0.0中已正式弃用并删除。 You should update your code with PDO or MySQLi.
您应该使用PDO或MySQLi更新代码。
Much easier: 容易得多:
$connect = mysql_query("SELECT * FROM members");
while($icerik=mysql_fetch_array($connect)){
echo $message = "Hi" . $row["member_name"] . "how are you? <br/>";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.