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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
Apr 23 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 PHP
Laravel框架数据库CURD操作、连贯操作总结
Sep 03 PHP
php导出CSV抽象类实例
Sep 24 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 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
几种显示数据的方法的比较
2006/10/09 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
Python的print用法示例
2014/02/11 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
python写一个md5解密器示例
2018/02/23 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
小学三年级语文教学反思
2016/03/03 职场文书