str_replace() 用法bug和技巧

语法

str_replace(find,replace,string,count)

参数    描述
find    必需。规定要查找的值。
replace    必需。规定替换 find 中的值的值。
string    必需。规定被搜索的字符串。
count    可选。一个变量,对替换数进行计数。

这个我不确定是语法bug还是我写法的问题,当出现匹配字符出现一个在第一匹配选项的时候,会出现不完全匹配的情况,导致匹配出的字符有问题

$list = str_replace(array(0,10,20,30,40), array(‘已取消‘,‘未付款‘,‘已付款‘,‘已发货‘,‘已收货‘),20);

$list = str_replace(array(‘10‘,‘20‘,‘30‘,‘40‘,‘0‘), array(‘未付款‘,‘已付款‘,‘已发货‘,‘已收货‘,‘已取消‘),20);
echo $list;

第一张情况下,打印出的结果是

2已取消

已取消

第二种情况下是正常的,为什么呢?,按照第一种情况下第一次配置是拿0去匹配20,是可以匹配得到的吧0替换成了‘已取消’,打印出来的就是2已取消

有些不能使用这种方法的就使用了自己在写一个方法去switch一下,然后返回值,当然像我这种懒人是不喜欢的

这种不完全匹配是字符串的话,出现的问题就更大了

$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "Z", "Hello World of PHP");

echo $onlyconsonants;

打印出这个,如果是匹配某个字符包含在你需要查找的字符里面还可以,如果只是替换你查找的到的直接替换,就不行了

HZllZ WZrld Zf PHP
时间: 2024-11-05 18:55:37

str_replace() 用法bug和技巧的相关文章

mount命令的用法,以及技巧光盘镜像文件、移动硬盘及U盘的方法

本文介绍mount命令的用法,以及技巧光盘镜像文件.移动硬盘及U盘的方法. 一,挂接命令(mount) 挂接(mount)命令的使用方法. 命令格式: 复制代码 代码如下: mount [-t vfstype] [-o options] device dir 其中:1.-t vfstype 指定文件系统的类型,通常不必指定.mount 会自动选择正确的类型.常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindo

微信各种BUG、技巧汇总

BUG: Android 4.0+微信4.5.1 会导致打开的网页文字非常小重现机型 galaxy s3, 三儿子 iOS6 下改变字号,JS获取的高度还是原始字号的高度 ios微信webview里 iframe 里的 input ,双击之后出不了菜单,导致无法输入 android 2.3+4.5微信webview刷新还没过期css的话,返回200,而不是304 无法打开自定义scheme 例如 <a href="tmt://" /> 公众账号 图文列表不认识中文文件名图片

关于linux和linux驱动程序解bug的技巧和思考方法

关于linux和linux驱动程序解bug的技巧和思考方法 解bug三步:1)看log,看现象.2)对比代码分析过程,程序流程,线程.中断.workqueue等各个独立执行体的交互3)调试,加入log.验证. 光看代码只能停留在理论上,一定要亲手调试一下才真正知道.另外对比正常和异常时的行为和log区别,交叉试验,才能发现问题的关键.注意各种调试尝试,各种替换调试,即好的和坏的,好的A和好的C,好的A和坏的D,坏的B和好的C,坏的B和坏的D的交叉调试,才能知道问题所在.另外,需要先写简化代码,验

解决bug的技巧

我在知乎上的一个回答:http://www.zhihu.com/question/27044029 我说的可能不是debug,主要是生产环境出问题时的查错. 首先,开发的时候就做好准备.包括但不限于:好好记录日志.一定要记录方法的入参.出参.异常信息.准备好日志下载.分析的工具.必要时候日志拆分.分析脚本要能写出来. 前两天上线时,不停的收到报错邮件.而且邮件里发送来的errmsg居然是null.当时的debug的关键三步,第一是日志下载.生产环境有比较完善的日志机制,我把报错前一个小时的都扒了

str_replace用法

语法 str_replace(find,replace,string,count) 参数 描述 find 必需.规定要查找的值. replace 必需.规定替换 find 中的值的值. string 必需.规定被搜索的字符串. count 可选.对替换数进行计数的变量. 技术细节 返回值: 返回带有替换值的字符串或数组. PHP 版本: 4+ 更新日志: 在 PHP 5.0 中,新增了 count 参数. 在 PHP 4.3.3 之前,该函数的 find 和 replace 参数都为数组时将会遇

iOS bug调试技巧学习----breakpoint&amp;condition

给断点添加条件 - (void)testCondition2 { NSArray *array = @[@"我们", @"一起", @"来", @"玩", @"abc123"]; NSInteger i = arc4random() % array.count; NSString *str = array[i]; NSLog(@"%zd, %@", i, str); NSLog(@&qu

Angular的一些用法或者结构技巧

如果有更好的方式,请留言交流: 2017-07-07 多个controller共用一个函数.在$rootScope中定义方法, $rootScope.share_fun = function test_fun($scope){ $scope.text = "123"; //修改子域的值} 然后大调用的时候,把$scope传过去 $rootScope.share_fun($scope);

sql语句查询结果合并union all用法_数据库技巧

--合并重复行 select * from A union select * from B --不合并重复行 select * from A union all select * from B 按某个字段排序 --合并重复行 select * from ( select * from A union select * from B) AS T order by 字段名 --不合并重复行 select * from ( select * from A union all select * from

php 找bug小技巧

1,file_put_contents("mylog.log",$mesList."\r\n",FILE_APPEND);  //将信息输出到mylog.log这个文件中(常用于在页面无法直接输出时) 2,echo $message ;  //将信息输出到浏览器 exit(); 3,如果是ajax 可以用window.alert($mes); 4:/* 无关代码注释掉*/ 5,查看php error.log 6,配置出错时可以查看apache_error.log文件