您如何使用 preg_replace(或类似)替换和更新 PHP?

How do you replace AND update in PHP using preg_replace (or similar)?

我想遍历一个数组,将包含标记的特定 key/value 对转换为 HTML。

因此 $comment['comment_text'] 的示例值将是:

This has *bolded* text

并且应该变成:

This has <strong>bolded</strong> text

这是我尝试过的方法:

$pattern = "/\*\b.*?\b\*/i";
$newComment = preg_replace($pattern, "<strong>$&</strong>", 
$comment['comment_text']);

我得到的是:

This has $& text

我意识到我正在将 Javascript 与 PHP 混合在一起,但是阅读 PHP 中的反向引用并没有让事情变得更清楚。

我的字符串可能有多个粗体(在标记中)实例...

感谢任何帮助。

更新: 抱歉 - 我没有意识到 Whosebug 正在将星号转换为斜体。我将示例转换为代码。

此外,我的困惑归结为 $0 与 $1 的使用。我仍然不完全理解。我认为数字指的是字符串中的匹配项...所以如果您有 5 个实例,您可以通过 $0 到 $4 来引用它们。

如果您使用 $0,您将获得:

This has <strong>*bolded*</strong> text

但是如果你使用 $1,你会得到想要的结果。

这样做。

 $pattern = "/\*\b(.*?)\b\*/";
 $newComment = preg_replace($pattern, "<strong></strong>", $comment['comment_text']);

这里</code>指的是第1组比赛。在这里,我假设您想在 <code>** 之间加粗文本。