PHP str_replace() 函数详解

1、前言:
str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。
该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。

2、语法:
mixed str_replace(mixed $search, mixed $replace, mixed $subject[,int &$count])

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

3、使用:
1)$search $replace都是字符串
代码:
$str = str_replace( "o", "i", "How are you?", $cnt );
echo $str.' '.$cnt;
返回:Hiw are yiu? 2
说明:将$subject中的$search替换为$replace,并计算次数

2)、$search为数组
代码:
$str = str_replace( [ "o", "u" ], "i", "How are you?", $cnt );
echo $str.' '.$cnt;
返回:Hiw are yii? 3
说明:在$subject中,将$search的各个字符串替换为$replace,并计算次数

3)、$replace为数组
代码:
$str = str_replace( "o", [ "i", "b" ], "How are you?", $cnt );
var_export($str);
echo $cnt;
返回:
Notice: Array to string conversion in ..\..\Test.php on line 19
'HArrayw are yArrayu?' 2
说明:在$subject中将$search字符串替换为Array

4)、$subject为数组
代码:
$str = str_replace( "o", 'i', [ 'H', 'o', 'w', 'a', 'r', 'e', 'y', 'o', 'u' ], $cnt );
var_export($str);
echo $cnt;
返回:array ( 0 => 'H', 1 => 'i', 2 => 'w', 3 => 'a', 4 => 'r', 5 => 'e', 6 => 'y', 7 => 'i', 8 => 'u', )2
说明:返回值为数组,将$subject中的各元素分别用$search替换为$replace的值进行替换。

5)、$search $replace都为数组
代码:
$str = str_replace( [ "o", "u" ], ['you', 'abc'], "How are you?", $cnt );
echo $str.' '.$cnt;
返回:Hyoabcw are yyoabcabc? 5
说明:在$subject中将$search的各元素值依次分别替换为$replace的各元素值。
过程:先将 $subject 中的 o 替换为 you => hyouw are yyouu?
再将替换后的$subject的 u 替换为 abc => Hyoabcw are yyoabcabc?
注:
(1)、如果$search的长度比$replace长;长出来的部分将匹配空字符串
代码:
$str = str_replace( [ "o", "u", "c" ], ['you', 'abc'], "How are you?", $cnt );
echo $str.' '.$cnt;
返回:Hyoabw are yyoabab? 8
过程: 先将 $subject 中的 o 替换为 you => hyouw are yyouu?
再将替换后的$subject的 u 替换为 abc => Hyoabcw are yyoabcabc?
再将替换后的$subject的 c 替换为 '' => Hyoabw are yyoabab?
(2)、如果$replace的长度比$search长;长出来的部分将忽略不计
代码:
$str = str_replace( [ "o", "u" ], ['you', 'abc', 'ban'], "How are you?", $cnt );
echo $str.' '.$cnt;
返回:Hyoabcw are yyoabcabc? 5

6)、$search $replace $subject都为数组
代码:
$str = str_replace( [ "o", "u" ], ['you', 'abc'], ["How are you?", 'How old are you?'], $cnt );
var_export($str);
echo $cnt;die;
返回:array ( 0 => 'Hyoabcw are yyoabcabc?', 1 => 'Hyoabcw yoabcld are yyoabcabc?', )12
说明:在$subject中将$search各元素的值依次分别替换为$replace的值,然后进行替换。
过程:
(1)、替换$subject[0] => "How are you?"
先将 $subject[0] 中的 o 替换为 you => hyouw are yyouu?
再将替换后的$subject[0]的 u 替换为 abc => Hyoabcw are yyoabcabc?
(2)、替换$subject[1] => 'How old are you?'
先将 $subject[1] 中的 o 替换为 you => hyouw yould are yyouu?
再将替换后的$subject[1]的 u 替换为 abc => Hyoabcw yoabcld are yyoabcabc?

PHP str_replace() 函数详解的更多相关文章

  1. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  2. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  3. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  4. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  5. kzalloc 函数详解(转载)

    用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...

  6. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  7. jQuery.attr() 函数详解

    一,jQuery.attr()  函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...

  8. memset函数详解

    语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关  功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...

  9. CreateFile函数详解

    CreateFile函数详解 CreateFile The CreateFile function creates or opens the following objects and returns ...

  10. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

随机推荐

  1. wpf 无法从流中加载光标

    使用wpf 加载图片光标时,无论是用光标文件的绝对路径还是使用uri资源的方式都不得行,及报无法从文件中加载光标或无法从流中加载光标.这中情况,就很有可能是光标cur文件不是标准的光标文件.比如你是通 ...

  2. 【Sqlserver】查看所有数据库的大小 创建日期 名称 版本级别 状态

    EXEC  sp_helpdb

  3. Linux之top命令下的交互快捷键

    快捷键: 数字1----查看服务器的cpu逻辑数 M -根据驻留内存大小进行排序 P -根据CPU使用百分比大小进行排序 T -根据时间/累计时间进行排序 c -切换显示命令名称和完整命令行 t -切 ...

  4. 转 [golang]为什么Response.Body需要被关闭

    Body io.ReadCloser       The http Client and Transport guarantee that Body is always non-nil, even o ...

  5. WPF之单例模式

    项目 2019/10/09   问题 2019年10月9日星期三 上午2:46 1.为了实现单例模式,在App类中添加了如下代码,使用了信号量,但是为什么返回;isNew一直为true public ...

  6. 像阿里OSS一样的文件对像存储服务,容器实现 docker初探及minio测试

    像阿里OSS一样的文件对像存储服务,容器实现 docker run -p 8000:9000 --name oss-minio -d -e "MINIO_ACCESS_KEY=AKIAIOS ...

  7. 生成树协议(STP)基本知识及实验(使用eNSP)

    1.基本知识--摘至<网络之路--交换专题> (1)生成树的作用:在链路层消除环路上可能出现的广播风暴. (2)生成树的工作由三部分组成:选举过程.拓扑计算.端口行为确定. 选举过程:在二 ...

  8. python安装OCR识别库

    (1)安装过程 参考的这个博客:https://blog.csdn.net/lanxianghua/article/details/100516187?depth_1-utm_source=distr ...

  9. 分布式定理--CAP定理

    cap定理指的是,在一个分布式系统中,只能满足cap中的两项. C consistency 一致性 A availability 可用性 P partition tolerance 分区可容错性 -- ...

  10. Lru在Rust中的实现, 源码解析

    LRU(Least Recently Used)是一种常用的页面置换算法,其核心思想是选择最近最久未使用的页面予以淘汰. LRU算法原理 基本思想:LRU算法基于一个假设,即如果一个数据在最近一段时间 ...