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小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
php在数组中查找指定值的方法
Mar 17 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
教你php如何实现验证码
Jan 20 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 02 PHP
Laravel框架表单验证操作实例分析
Sep 30 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 header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
js文字滚动停顿效果代码
2008/06/28 Javascript
jquery 插件开发备注
2010/08/27 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
python解析json实例方法
2013/11/19 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
安装python及pycharm的教程图解
2019/10/10 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
中专毕业生自我鉴定
2013/11/21 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python