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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
PHP在线生成二维码代码(google api)
Jun 03 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
php处理json格式数据经典案例总结
May 19 PHP
CI(CodeIgniter)框架视图中加载视图的方法
Mar 24 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
实例讲解PHP表单
Jun 10 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
paypal即时到账php实现代码
2010/11/28 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
php画图实例
2014/11/05 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python字符串匹配算法KMP实例
2015/07/18 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
Python中按值来获取指定的键
2019/03/04 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
python实现图片九宫格分割
2021/03/07 Python
python 图像增强算法实现详解
2021/01/24 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
白酒市场开发计划书
2014/01/09 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
会议通知
2015/04/15 职场文书
投资合作意向书范本
2015/05/08 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS