我想遍历一个数组,将包含标记的特定键/值对转换为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']);
我得到的是什么
其中包含 $&文本
我意识到我正在用PHP混合Javascript,但是阅读有关PHP中的反向引用的信息并没有使事情变得更清楚。
我的字符串可能具有多个加粗(在标记中)的实例...
任何帮助表示赞赏。
更新: 抱歉-我没有意识到Stackoverflow会将星号转换为斜体。我将示例转换为代码。
此外,我的困惑还在于使用$ 0对比$ 1。我仍然不完全了解。我以为数字是字符串中的匹配项...所以,如果您有5个实例,则可以用$ 0到$ 4来引用它们。
如果您使用$ 0,您会得到:
This has <strong>*bolded*</strong> text
但是,如果您使用$ 1,则会得到理想的结果。
答案 0 :(得分:0)
执行此操作。
$pattern = "/\*\b(.*?)\b\*/";
$newComment = preg_replace($pattern, "<strong>$1</strong>", $comment['comment_text']);
这里$1
是指第1组比赛。在这里,我假设您想将**
之间的文本加粗。