我在MySQL中有 wordfilter 表,我使用PHP从中获取所有行并将其替换为字符串。
$string = "test string";
$result = mysqli_query($conn, "SELECT * FROM wordfilter;");
while ($row = mysqli_fetch_assoc($result))
{
$string = str_replace($row['search'], $row['replace'], $string);
}
它会像这样工作:
Iteration number: (row from table) - result string
0: "tt string e"
1: ("tt", "<b>test</b>") - "<b>test</b> string e"
2: ("e", "f") - "<b>tfst</b> string f"
etc.
我希望它有这个结果"<b>test</b> string f"
(“e”不会替换为<b>test</b>
中的“f”,因为它在输入字符串中不存在。)
答案 0 :(得分:2)
构建一组搜索替换对,如下所示:
$reps = array();
while($row = mysqli_fetch_assoc($result)) $reps[$row['search']] = $row['replace'];
然后使用strtr
;
$string = strtr($string,$reps);