简体   繁体   English

PHP str_replace在while循环中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM