PHP 笔记——String 字符串
1. 定义
- 单引号括起来的字符串被原样输出。
- 双引号字符串中的变量被PHP解析为变量值。
2. 获取字符串长度
strlen(string $string): int
- 在utf-8下,汉字占3个字符,其它情况下2个字符
- 数字、英文、小数点、下划线和空格各占一个字符
3. 截取字符串
substr(string $str, int $start, int $length): string
mb_substr(string $str, int $start, int $length, string $encoding): string
- $encoding:设置字符串的编码格式
4. 比较字符串
4.1 按字节比较
strcmp(string $str1, string $str2): int // 区分大小写
strcasecmp(string $str1, string $str2): int //不区分大小写
4.2 按自然排序法比较
strnatcmp(string $str1, string $str2): int //区分大小写
strnatcasecmp(string $str1, string $str2): int //不区分大小写
自然排序法比较的是字符串的数字部分,将字符串中的数字按照大小进行排序。
4.3 按指定源字符串的位置比较
strncmp(string $str1, string $str2, int $len): int
比较字符串中的前n($len)个字符
4.4 返回值 int
| 返回值 | 说明 |
|---|---|
| 0 | 字符串相等 |
| 1 | str1>str2 |
| -1 | str1<str2 |
5. 检索字符串
5.1 搜索字符串在另一字符串中的第一次出现
用来获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。如果执行成功,则返回剩余字符串(存在相匹配的字符),否则返回 false。
正序开始检索
strstr(string $haystack, mixed $needle [, bool $before_needle]): string // 区分大小写
stristr(string $haystack, mixed $needle [, bool $before_needle]): string // 不区分大小写
后序开始检索
strrchr(string $haystack, mixed $needle): string // 区分大小写
5.2 检索子串在字符串中出现的次数
substr_count(string $haystack, string $needle): int
6. 替换字符串
str_replace(mixed $search, mixed $replace, mixed $subject, int $count): mixed // 区分大小写
str_ireplace(mixed $search, mixed $replace, mixed $subject, int $count): mixed // 不区分大小写
| 参数 | 说明 |
|---|---|
| mixed $search | 要查找的字符串 |
| mixed $replace | 指定替换的值 |
| mixed $subject | 指定查找范围 |
| int $count | 获取执行替换的数量 |
substr_replace(mixed $string, mixed $replacement, mixed $start, mixed $length): mixed
| 参数 | 说明 |
|---|---|
| mixed $string | 要操作的原始字符串 |
| mixed $replacement | 要替换后的新字符串 |
| mixed $start | 要替换字符串开始的位置 |
| mixed $length | 指定返回的字符串长度 正数:表示从开头覆盖 负数:表示从结尾保留 0:表示“插入”而非“替代” |
7. 去特殊字符
用于去除字符串开始位置和结束位置的空白字符
trim(string $str): string
用于去除字符串左边的空白字符或者指定字符串
ltrim(string $str, string $character_mask): string
用于去除字符串右边的空白字符或者指定字符串
rtrim(string $str, string $character_mask): string
8. 分割字符串
explode(string $delimiter, string $string): array
| 参数 | 说明 |
|---|---|
| $delimiter | 分割符 |
| $string | 要被分割的字符串 |
strtok(string $str, string $token): string
strtok(string $token): string
第一次调用 strtok() 函数时使用了 $str 参数。在首次调用后,该函数仅需要 $token 参数
$first_token = strtok('some/thing', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
运行结果:
string(4) "some" string(5) "thing"
9. 合成字符串
implode(string $glue, array $pieces): string
| 参数 | 说明 |
|---|---|
| $glue | 指定分割符 |
| $pieces | 要被合成的数组 |
PHP 笔记——String 字符串的更多相关文章
- JavaSE 学习笔记之String字符串(十四)
API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源 ...
- 【学习笔记】字符串—马拉车(Manacher)
[学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...
- 「学习笔记」字符串基础:Hash,KMP与Trie
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...
- Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0
课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值 String str=& ...
- [CareerCup] 1.3 Permutation String 字符串的排列
1.3 Given two strings, write a method to decide if one is a permutation of the other. 这道题给定我们两个字符串,让 ...
- 03-Java String字符串详解
1.Java字符串String A.实例化String字符串:直接赋值(更合理一些,使用较多).使用关键字new. B.String内容的比较 // TODO Auto-generated metho ...
- C++学习38 string字符串的增删改查
C++ 提供的 string 类包含了若干实用的成员函数,大大方便了字符串的增加.删除.更改.查询等操作. 插入字符串 insert() 函数可以在 string 字符串中指定的位置插入另一个字符串, ...
- C++学习37 string字符串的访问和拼接
访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符.string 字符串的起始下标仍是从 0 开始.请看下面的代码: #include <iostrea ...
- java String字符串——进度1
String字符串 在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种, 第一种是直接赋值, 第二种是使用String类的构造方法: 如下所示: Strin ...
随机推荐
- SDUT 3923
Description snow 是个热爱打字的家伙,每次敲出更快的速度都会让他很开心.现在,他拿到一篇新的打字文章,已知这篇文章只有 26 个小写英文字母,给出 snow 打出这 26 个英文字母分 ...
- 【leetcode 简单】第二十三题 二叉树的最大深度
给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15,7], ...
- 【Python学习】字符编码
先说两个基础知识. (1)计算机内部,数据是由0,1组成的: (2)计算机最小的数据单位,就是一个二进制单位即bit,接下来就是8个二进制单位表示一个字节(Byte). 1 ASCII码 ASCII码 ...
- android的wake_lock介绍
Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的, 超时的锁会在时间过去以后自动解锁. 如果没有锁了或者 ...
- Python设计模式中单例模式的实现及在Tornado中的应用
单例模式的实现方式 将类实例绑定到类变量上 class Singleton(object): _instance = None def new(cls, *args): if not isinstan ...
- C++中stringstream样例
包含头文件 #include <sstream> 初始化可以使用 clear(). str( ) 赋值: 这里的clear方法,实际上是清空stringstream的状态(比如出错等),清 ...
- Linux中涉及到环境变量的文件
1. 系统级 (a) /etc/profile : 在用户登录操作系统时,定制用户环境的第一个文件,应用于登录的每一个用户 ==> 该文件一般调用/etc/bash.bashrc文件 (b)/e ...
- xshell 映射带跳板机服务器的端口到本地
1.配置xshell连接跳板机服务器: 2. 3.可用navicate等同过端口连接远程数据库.
- POJ2528 Mayor's posters(线段树染色问题+离散化)
题目大意:有t组数据,每组数据给你n张海报(1<=n<=10000),下面n组数据分别给出每张海报的左右范围(1 <= l <= r <= 10000000),下一张海报 ...
- 20165301 2017-2018-2 《Java程序设计》第三周学习总结
20165301 2017-2018-2 <Java程序设计>第三周学习总结 教材学习内容总结 第四章:类与对象 类: 类的声明:class+类名 类体:成员变量的声明+方法(局部变量+语 ...