提前使用str替换功能

时间:2017-04-26 21:25:36

标签: php

示例代码

$str = "some text <cs> some text </cs> some text <cs> some text </cs> some text <cs> some text </cs>";
$str = str_replace("<cs>", <textarea id="codeBlock">, $str);
$str = str_replace("</cs>", </textarea>, $str);

现在问题是它将所有<cs>转换为<textarea id="codeBlock">,我想要的是<cs>中的第一个$str应该id="codeBlock-1"秒得到id="codeBlock-2"等等。

1 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback()执行此操作。它调用一个函数来获取替换字符串,这个函数可以增加一个变量。

$num = 0;
$str = "some text <cs> some text </cs> some text <cs> some text </cs> some text <cs> some text </cs>";
$str = preg_replace_callback('/<cs>/', function($match) use (&$num) {
    $num++;
    return "<textarea id='codeBlock-$num'>";
}, $str);
$str = str_replace("</cs>", "</textarea>", $str);
echo $str;

DEMO