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 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
PHP使用curl函数发送Post请求的注意事项
Nov 26 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
PHP实现文字写入图片功能
Feb 18 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
python实现员工管理系统
2018/01/11 Python
Python中的类与类型示例详解
2019/07/10 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python进度条显示之tqmd模块
2020/08/22 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
工程预算与管理应届生求职信
2013/10/06 职场文书
工程班组长岗位职责
2013/12/30 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
详解pytorch创建tensor函数
2022/03/22 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python