您如何使用 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>**
之间加粗文本。
我想遍历一个数组,将包含标记的特定 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>**
之间加粗文本。