您好,欢迎访问一九零五行业门户网

preg_replace有关问题求解

preg_replace问题求解
我又一个字符串:
$html = '
《maingood》《subgood》《subgood》';//《maingood》《subgood》个数不定
我现在用echo preg_replace(/(《maingood》)|(《subgood》)/is,回调函数,$html);
我本来想用回调函数的方法替换《maingood》为1,第一个《subgood》为2,第三个《subgood》为3,依次类推,我本来想在回调函数中获取到当前替换的是第几个,然后确定替换内容。但是在回调函数中不知道该怎么写了,请高手帮下忙。
------解决方案--------------------
是这个意思么?php code 《maingood》《maingood》《subgood》《subgood》《subgood》';echo preg_replace(/(《maingood》|《subgood》)/eis,foo('$1'),$html);function foo($v){ global $count; if($v=='《maingood》'){ return 1; }else{ $count++; return $count+1; }}//11234
------解决方案--------------------
$num_maingood = $num_subgood = 0;
echo preg_replace_callback(/(《maingood》)|(《subgood》)/is, '回调函数', $html);
function 回调函数($r) {
global $num_maingood, $num_subgood;
if($r[1]) $num_maingood++;
if($r[2]) $num_subgood++;
//以下写返回内容的代码
}
------解决方案--------------------
php code[liangdong@bb-browser-test00.vm.baidu.com php_project]$ php main.php
abc[liangdong@bb-browser-test00.vm.baidu.com php_project]$ cat main.php 'c');$result = preg_replace_callback('/《maingood》|《subgood》/i', function($match) { global $count; global $map; return $map[$count++]; }, $html);echo $result . php_eol;?>
其它类似信息

推荐信息