1

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」は「f」に置き換えられません)。<b>test</b>

4

1 に答える 1

2

次のように、検索と置換のペアの配列を作成します。

$reps = array();
while($row = mysqli_fetch_assoc($result)) $reps[$row['search']] = $row['replace'];

strtr次に、 ;の魔法を使用します。

$string = strtr($string,$reps);
于 2013-03-02T00:35:14.597 に答える