gpt4 book ai didi

php - 如何使用 preg_replace_callback?

转载 作者:IT王子 更新时间:2023-10-29 01:05:37 26 4
gpt4 key购买 nike

我有以下 HTML 语句

[otsection]Wallpapers[/otsection]
WALLPAPERS GO HERE

[otsection]Videos[/otsection]
VIDEOS GO HERE

我想要做的是用 html div 替换 [otsection] 标签。问题是我想将 div 的 id 从 1->2->3 等递增。

所以比如上面的语句应该翻译成

<div class="otsection" id="1">Wallpapers</div>
WALLPAPERS GO HERE

<div class="otsection" id="2">Videos</div>
VIDEOS GO HERE

据我研究,最好的方法是通过 preg_replace_callback 在每次替换之间增加 id 变量。但经过 1 小时的工作后,我无法让它工作。

对此的任何帮助将不胜感激!

最佳答案

使用以下内容:

$out = preg_replace_callback(
"(\[otsection\](.*?)\[/otsection\])is",
function($m) {
static $id = 0;
$id++;
return "<div class=\"otsection\" id=\"ots".$id."\">".$m[1]."</div>";
},
$in);

请特别注意,我使用了一个 static 变量。此变量在对函数的调用中持续存在,这意味着它会在每次调用函数时递增,每次匹配都会发生这种情况。

另外,请注意我在 ID 前添加了 ots。元素 ID 不应以数字开头。


对于 5.3 之前的 PHP:

$out = preg_replace_callback(
"(\[otsection\](.*?)\[/otsection\])is",
create_function('$m','
static $id = 0;
$id++;
return "<div class=\"otsection\" id=\"ots".$id."\">".$m[1]."</div>";
'),
$in);

关于php - 如何使用 preg_replace_callback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com