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 相关文章推荐
php flush类输出缓冲剖析
Oct 19 PHP
PHP文件上传原理简单分析
May 29 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
php获取当月最后一天函数分享
Feb 02 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
PHP二维数组去重算法
Dec 17 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
PHP定义字符串的四种方式详解
Feb 06 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下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
Vue不能观察到数组length的变化
2018/06/08 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
Javascript实现打鼓效果
2021/01/29 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Python 正则表达式(转义问题)
2014/12/15 Python
Python实现线程池代码分享
2015/06/21 Python
python中下标和切片的使用方法解析
2019/08/27 Python
python绘制玫瑰的实现代码
2020/03/02 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
教师研修随笔感言
2014/01/23 职场文书
高二学生评语大全
2014/04/25 职场文书
2014年三万活动总结
2014/04/26 职场文书
小学中等生评语
2014/12/29 职场文书
高考1977观后感
2015/06/04 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python