当前位置: 网学 > 编程文档 > PHP > 正文

php数组一对一替换实现代码

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/20

本文主要为广大网友提供“php数组一对一替换实现代码”,希望对需要php数组一对一替换实现代码网友有所帮助,学习一下!

复制代码 代码如下:
<?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

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号