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 相关文章推荐
一个目录遍历函数
Oct 09 PHP
PHP ajax 分页类代码
Nov 13 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
php通过字符串调用函数示例
Mar 02 PHP
php调用c接口无错版介绍
Mar 11 PHP
php之curl设置超时实例
Nov 03 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
PHP异常类及异常处理操作实例详解
Dec 19 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
一个分页的论坛
2006/10/09 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
jquery实现数字输入框
2017/02/22 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
python 文件与目录操作
2008/12/24 Python
django解决订单并发问题【推荐】
2019/07/31 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
python实现代码统计程序
2019/09/19 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
高校自主招生自荐信
2013/12/09 职场文书
三年级学生评语
2014/04/23 职场文书
应届生简历自我评价
2015/03/11 职场文书
离婚上诉状范文
2015/05/23 职场文书
昆虫记读书笔记
2015/06/26 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书