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 第二节 数据类型之字符串类型
Apr 28 PHP
php生成excel列序号代码实例
Dec 24 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
php实现对象克隆的方法
Jun 20 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
php设计模式之委托模式
Feb 13 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
PHP命令Command模式用法实例分析
Aug 08 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/02/27 无线电
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Python缩进和冒号详解
2016/06/01 Python
python 获取字符串MD5值方法
2018/05/29 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
phpquery中文手册
2021/03/18 PHP
夜大毕业生自我评价分享
2013/11/10 职场文书
酒店管理求职信范文
2014/04/06 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
学校远程教育工作总结
2015/08/11 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS