【发布时间】:2014-11-13 11:20:33
【问题描述】:
我正在尝试遍历每个 [footnote] 并将其替换为一些 HTML。以下是一些示例文本:
Hello [footnote], how are you [footnote], what are you up to [footnote]?
并使用 preg_match_all 创建计数:
$match_count = preg_match_all("/\[footnote]/", $content);
然后我将此计数用作循环,以查找文本并将其替换为适当的 HTML:
for ($i=0; $i < $match_count; $i++) {
$new_content = str_replace('[footnote]', "<span class='footnote'>$i</span>", $content);
}
但是,之后,当我echo $new_content; 每个[footnote] 有相同的数字时,2:
<span class="footnote">2</span>
<span class="footnote">2</span>
<span class="footnote">2</span>
有人知道为什么这个数字没有增加吗?这就是我想要的
<span class="footnote">1</span>
<span class="footnote">2</span>
<span class="footnote">3</span>
【问题讨论】:
-
str_replace一次性替换所有内容,您需要有限制的preg_replace。 -
你能展示或链接到一个例子吗?
标签: php preg-match