Да, вы можете использовать регулярные выражения подобным образом, но код может стать немного запутанным.Вот краткий пример
$string = '<a href="keyword.php">link text with keyword and stuff</a>';
$keyword = 'keyword';
$text = preg_replace(
'/(<a href=")('.$keyword.')(.php">)(.*)(<\/a>)/',
"$1$2$3<b>$4</b>$5",
$string
);
echo $string."\n";
echo $text."\n";
Содержимое inside () хранится в переменных $ 1, $ 2 ... $ n, поэтому мне не нужно снова набирать вещи.Сопоставление также может быть сделано более общим, чтобы соответствовать различным видам синтаксиса URL, если это необходимо.
Видя это решение, вы, возможно, захотите переосмыслить то, как вы планируете сопоставлять ключевые слова в своем коде.:)
вывод:
<a href="keyword.php">link text with keyword and stuff</a>
<a href="keyword.php"><b>link text with keyword and stuff</b></a>