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 相关文章推荐
Smarty Foreach 使用说明
Mar 23 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php打印一个边长为N的实心和空心菱型的方法
Mar 02 PHP
PHP实现的购物车类实例
Jun 17 PHP
php发送邮件的问题详解
Jun 22 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
Laravel日志用法详解
Oct 09 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 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
Protoss兵种对照表
2020/03/14 星际争霸
php 保留字列表
2012/10/04 PHP
php时区转换转换函数
2014/01/07 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
js实现旋转木马轮播图效果
2020/01/10 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python实现的ini文件操作类分享
2014/11/20 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
python得到windows自启动列表的方法
2018/10/14 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
安全生产检讨书
2014/01/21 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
超市员工管理制度
2015/08/06 职场文书