-1

テキストで特定の文字列を太字にしようとしています。私は自分のphpブックを調べてオンラインで調べましたが、問題を解決する解決策はありませんでした. 変数$mapname$post_title変更は、次の例のように、特定の文字を置き換えるために正常に機能している while ループ内にあるためです。

$data_p = "SELECT * FROM posts WHERE verified='yes' ORDER BY (posvotes - negvotes) DESC $max"; 
$exec_p = $mysqli->query($data_p);
while($row = $exec_p->fetch_object())
{ 
$post_id = $row->post_id;
$maps = "SELECT name FROM maps WHERE id='$post_id'";
$getmaps = $mysqli->query($maps);
$mapname = $getmaps->fetch_object();
$post_title = preg_replace('/(Free )/',"<b>\\0</b>", $post_title);

しかし、文字列を置き換えようとすると

$post_title = str_replace($mapname,'<b>'.$mapname.'</b>', $post_title);

出力がまったく得られません。私が間違っていることについてのアイデアはありますか? を無効にしstr_replaceて変数を var_dump すると、常に正しい変数が取得されます。
解決策を求めて Web を閲覧しましたが、str_replace機能はマニュアルに従って動作するはずです。

4

2 に答える 2

2

次のようなことをする必要があります

$post_title = str_replace($mapname->columnName,'<b>'.$mapname->columnName.'</b>', $post_title);

または、次のようなこともできます。

$mapname = $getmaps->mysqli_fetch_array();

そして、あなたのコードで試してみてください...

于 2013-05-14T20:56:07.030 に答える
1

あなたが提供したコードから、$mapname文字列ではなくオブジェクトです。次のようなことを試す必要があります。$post_title = str_replace($mapname->name,'<b>'.$mapname->name.'</b>',$post_title);

于 2013-05-14T20:56:54.017 に答える