0

検索入力があり、スクリプトが結果を表示するときに、キーワードに太字と下線を付けたいと考えています。だから私はこのスクリプトを持っています:

$showkey = str_replace(ucfirst($_POST['station']), '<b><u>'.htmlentities(ucfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]);
$showkey = str_replace(lcfirst($_POST["station"]), '<b><u>'.htmlentities(lcfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]);

例: $_POST["station"] が 'l' の場合、すべての l が必要で、L は太字で下線が引かれています。それは現在機能していません。小さな「l」だけが太字で下線が引かれています。スクリプトが次の場合:

$showkey = str_replace(lcfirst($_POST["station"]), '<b><u>'.htmlentities(lcfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i])
$showkey = str_replace(ucfirst($_POST['station']), '<b><u>'.htmlentities(ucfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]);

現在、「L」のみが太字で下線が引かれています。しかし、L と l には太字と下線の両方が必要です。

どうやってやるの?

ありがとう!

4

1 に答える 1

0

正規表現を使用してこれを解決できるはずです。

preg_replace('/('. $_POST['station'] .')/i', '<b><u>$1</u></b>', $text);

ただし、このように使用する場合は、$_POST['station'] で特殊文字をエスケープするように注意してください。

于 2013-10-19T15:43:10.820 に答える