我又一个字符串:
$html = '<ul><li>《mainGood》</li><li>《subGood》《subGood》</li></ul>';//《mainGood》《subGood》个数不定我现在用echo preg_replace("/(《mainGood》)|(《subGood》)/is",回调函数,$html);我本来想用回调函数的方法替换《mainGood》为1,第一个《subGood》为2,第三个《subGood》为3,依次类推,我本来想在回调函数中获取到当前替换的是第几个,然后确定替换内容。但是在回调函数中不知道该怎么写了,请高手帮下忙。
$html = '<ul><li>《mainGood》</li><li>《subGood》《subGood》</li></ul>';//《mainGood》《subGood》个数不定我现在用echo preg_replace("/(《mainGood》)|(《subGood》)/is",回调函数,$html);我本来想用回调函数的方法替换《mainGood》为1,第一个《subGood》为2,第三个《subGood》为3,依次类推,我本来想在回调函数中获取到当前替换的是第几个,然后确定替换内容。但是在回调函数中不知道该怎么写了,请高手帮下忙。
解决方案 »
- 问一下象veryCD首页标题的名人名言一般如何实现的?
- 想请教一下,大家现在一般用什么语言,什么构架,什么工具来开发eHR?
- PHP获取IP
- 求助高手帮我把这段httpd.in代码转换成.htaccess代码
- 请问谁有用PHP开发Webservice的资料啊?
- PHP 求生成柱状图程序,各位大虾帮帮忙
- mysql 的 datetime 类型怎么比较大小?
- 求解,PHP实现单点登陆?
- dz的,要实现完全的rewrite,修改.htaccess文件,代码是什么
- 我不懂PHP但我要写一个PHP网页,请求高手指教!我需要一个用户注册php+access
- 想把淘宝数据接入网站,应该先学习什么?
- php double做减法
$html = '<ul><li>《mainGood》《mainGood》</li><li>《subGood》《subGood》《subGood》</li></ul>';
echo preg_replace("/(《mainGood》|《subGood》)/eis","foo('$1')",$html);function foo($v){
global $count;
if($v=='《mainGood》'){
return 1;
}else{
$count++;
return $count+1;
}
}
//<ul><li>11</li><li>234</li></ul>
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++;
//以下写返回内容的代码}
<ul><li>a</li><li>bc</li></ul>
[[email protected] php_project]$ cat main.php
<?php
$html = <<<EOF
<ul><li>《mainGood》</li><li>《subGood》《subGood》</li></ul>
EOF;$count = 0;
$map = array(0 => 'a', 1 => 'b', 2 => 'c');
$result = preg_replace_callback('/《mainGood》|《subGood》/i',
function($match) {
global $count;
global $map;
return $map[$count++];
}, $html);
echo $result . PHP_EOL;
?>