示例代码
$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"
等等。
答案 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;