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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
简单的php文件上传(实例)
Oct 27 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
PHP实现的统计数据功能详解
Dec 06 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 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中引用符号(&amp;)的使用详解
2013/11/13 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
Javascript中call与apply的学习笔记
2014/09/22 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
Python类的基础入门知识
2008/11/24 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
详解重置Django migration的常见方式
2019/02/15 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
python上selenium的弹框操作实现
2020/07/13 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
华为C++笔试题
2014/08/05 面试题
.NET方向面试题
2014/11/20 面试题
急诊科护士自我鉴定
2013/10/14 职场文书
高校毕业生登记表自我鉴定
2013/11/03 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
保护环境演讲稿
2014/05/10 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android