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. efcore如何优雅的实现按年分库按月分表

    efcore如何优雅的实现按年分库按月分表 介绍 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖. ...

  2. 当面试官问出“Unsafe”类时,我就知道这场面试废了,祖坟都能给你问出来!

    一.写在开头 依稀记得多年以前的一场面试中,面试官从Java并发编程问到了锁,从锁问到了原子性,从原子性问到了Atomic类库(对着JUC包进行了刨根问底),从Atomic问到了CAS算法,紧接着又有 ...

  3. Java 对象的揭秘

    前言 作为一个 Java 程序员,我们在开发者最多的操作要属创建对象了.那么你了解对象多少?它是如何创建?如何存储布局以及如何使用的?本文将对 Java 对象进行揭秘,以及讲解如何使用 JOL 查看对 ...

  4. Flask-Limit详细说明:接口限流

    速率限制通常作为服务的防御措施予以实施.服务需要保护自身以免过度使用(无论是有意还是无意),从而保持服务可用性.在Flask项目开发过程中,遇到了需要对接口进行限制的需求,又不想去造轮子,这时候就需要 ...

  5. React 中的 useRef 与 useState

    React 是一个流行的 JavaScript 库,用于构建用户界面.它提供了几个钩子,使开发人员能够管理状态并执行副作用. React 中两个常用的钩子是 useRef 和 useState .虽然 ...

  6. docker部署php8.0 nginx1.18 mysql5.7 dnmp环境

    php8.0 nginx1.18 mysql5.7 #安装docker wget -O /etc/yum.repos.d/ali_docker-ce.repo https://mirrors.aliy ...

  7. 【VMware vSphere】使用vSphere Lifecycle Manager(vLCM)管理独立主机和集群的生命周期。

    vSphere Lifecycle Manager(vLCM)是 vSphere 7 中引入的一项新功能,它提供了一种集中式.自动化和简单性的方式来管理和升级 vSphere 基础架构组件(如vCen ...

  8. 使用vscode编辑c语言

    在 Visual Studio Code (VSCode) 中配置 C 语言环境 步骤指南: 一,前期准备(安装扩展,软件包) 安装 C/C++ 扩展 打开 VSCode. 点击左侧边栏的扩展按钮(或 ...

  9. 虚拟机ping不通物理机 PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.

    准备做samba服务配置的时候 ping 192.168.10.1 (物理机地址) PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data. 查看自 ...

  10. Linux-线程优先级学习

    概念 Linux系统中常用的几种调度类为SCHED_NORMAL.SCHED_FIFO.SCHED_RR. SCHED_NORMAL:用于普通线程的调度类 SCHED_FIFO和SCHED_RR是用于 ...