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中进行身份认证
Oct 09 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
PHP实现发送微博消息功能完整示例
Dec 04 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
js实现表格筛选功能
2017/01/18 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
Python入门篇之正则表达式
2014/10/20 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python安装scipy的方法步骤
2019/06/26 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
会计毕业自我鉴定
2014/02/05 职场文书
学校2014年度工作总结
2014/12/06 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS