preg_replace有关问题求解

php中文网
发布: 2016-06-13 13:13:56
原创
1063人浏览过

preg_replace问题求解
我又一个字符串:
$html = '

  • 《mainGood》
  • 《subGood》《subGood》
';//《mainGood》《subGood》个数不定

我现在用echo preg_replace("/(《mainGood》)|(《subGood》)/is",回调函数,$html);

我本来想用回调函数的方法替换《mainGood》为1,第一个《subGood》为2,第三个《subGood》为3,依次类推,我本来想在回调函数中获取到当前替换的是第几个,然后确定替换内容。但是在回调函数中不知道该怎么写了,请高手帮下忙。

------解决方案--------------------
是这个意思么?
PHP code
<?php $html = '<ul>
登录后复制
  • 《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; } } //
    • 11
    • 234

    ------解决方案--------------------
    $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 
    
    登录后复制
    • a
    • bc
    [liangdong@bb-browser-test00.vm.baidu.com php_project]$ cat main.php
  • 《mainGood》
  • 《subGood》《subGood》
  • 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; ?>
    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号