php数组一对一替换实现代码


Posted in PHP onAugust 31, 2012
<?php 
header("Content-type: text/html; charset=utf-8"); 
function multiple_replace_words($word,$replace,$string,$tmp_match='#a_a#'){ 
preg_match_all('/'.$word.'/',$string,$matches); //匹配所有关键词 
$search = explode(',','/'.implode('/,/',$matches[0]).'/'); 
//不存在匹配关键词 
if(empty($matches[0])) return false; 
//特殊替换设置 
$count = count($matches[0]); 
foreach($replace as $key=>$val){ 
if(!isset($matches[0][$key])) unset($replace[$key]); //剔除越界替换 
} 
//合并特殊替换数组与匹配数组 
for($i=0;$i<$count;$i++){ 
$matches[0][$i] = isset($replace[$i])? $replace[$i] : $matches[0][$i]; 
} 
$replace = $matches[0]; 
//防止替换循环,也就是替换字符仍是被替换字符,此时将其临时替换一个特定字符$tmp_match 
$replace = implode(',',$replace); 
$replace = str_replace($word,$tmp_match,$replace); //临时替换匹配字符 
$replace = explode(',',$replace); 
//替换处理 
$string = preg_replace($search,$replace,$string,1); //每次只替换数组中的一个 
$string = str_replace($tmp_match,$word,$string); //还原临时替换的匹配字符 
return $string; 
} 
//示例1 
$string = 'aaabaaacaaadaaa'; 
$word = 'aaa'; 
$replace = array(null,'xxx','yyy'); 
echo '原文:'.$string.'<br/>输出:'.multiple_replace_words($word,$replace,$string).'<br/><br/>'; 
//示例2 
$string = '中文aaab中文ccaaad中文eee'; 
$word = '中文'; 
$replace = array(null,'(替换中文2)','(替换中文3)'); 
echo '原文:'.$string.'<br/>输出:'.multiple_replace_words($word,$replace,$string); 
/* 
输出结果: 
原文:aaabaaacaaadaaa 
输出:aaabxxxcyyydaaa 
原文:中文aaab中文ccaaad中文eee 
输出:中文aaab(替换中文2)ccaaad(替换中文3)eee 
//*/

作者:Zjmainstay
PHP 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
在线竞拍系统的PHP实现框架(二)
Oct 09 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 #PHP
PHP的简易冒泡法代码分享
Aug 28 #PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 #PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 #PHP
PHP 图片水印类代码
Aug 27 #PHP
PHP setTime 设置当前时间的代码
Aug 27 #PHP
PHP 透明水印生成代码
Aug 27 #PHP
You might like
二招解决php乱码问题
2012/03/25 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
限制复选框的最大可选数
2006/07/01 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
详解JS模块导入导出
2017/12/20 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
Python入门篇之列表和元组
2014/10/17 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
python中Flask框架简单入门实例
2015/03/21 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python实现定时提取实时日志程序
2018/06/22 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
学生党员思想汇报范文
2014/01/09 职场文书
高中数学教学反思
2014/01/30 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
护理专科学生自荐书
2014/07/05 职场文书
十佳家长事迹材料
2014/08/26 职场文书
学生检讨书范文
2015/01/27 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL