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 相关文章推荐
Email+URL的判断和自动转换函数
Oct 09 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
php去掉文件前几行的方法
Jul 29 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
php的api数据接口书写实例(推荐)
Sep 22 PHP
Laravel框架查询构造器简单示例
May 08 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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实现最简单的MVC框架实例教程
2014/09/08 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP微信支付实例解析
2016/07/22 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
详解vuex的简单使用
2018/03/12 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
Python新手们容易犯的几个错误总结
2017/04/01 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
工程部主管岗位职责
2013/11/17 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
军训自我鉴定100字
2014/02/13 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
研究生求职自荐书
2014/06/23 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
大学生十八大感想
2015/08/11 职场文书
二年级数学教学反思
2016/02/16 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
JS数组去重详情
2021/11/07 Javascript