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 字符串的更多相关文章

  1. JavaSE 学习笔记之String字符串(十四)

    API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源 ...

  2. 【学习笔记】字符串—马拉车(Manacher)

    [学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...

  3. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  4. Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

    课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str=& ...

  5. [CareerCup] 1.3 Permutation String 字符串的排列

    1.3 Given two strings, write a method to decide if one is a permutation of the other. 这道题给定我们两个字符串,让 ...

  6. 03-Java String字符串详解

    1.Java字符串String A.实例化String字符串:直接赋值(更合理一些,使用较多).使用关键字new. B.String内容的比较 // TODO Auto-generated metho ...

  7. C++学习38 string字符串的增删改查

    C++ 提供的 string 类包含了若干实用的成员函数,大大方便了字符串的增加.删除.更改.查询等操作. 插入字符串 insert() 函数可以在 string 字符串中指定的位置插入另一个字符串, ...

  8. C++学习37 string字符串的访问和拼接

    访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符.string 字符串的起始下标仍是从 0 开始.请看下面的代码: #include <iostrea ...

  9. java String字符串——进度1

    String字符串    在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种,    第一种是直接赋值,    第二种是使用String类的构造方法:    如下所示:    Strin ...

随机推荐

  1. 【BZOJ】4129: Haruna’s Breakfast 树分块+带修改莫队算法

    [题意]给定n个节点的树,每个节点有一个数字ai,m次操作:修改一个节点的数字,或询问一条树链的数字集合的mex值.n,m<=5*10^4,0<=ai<=10^9. [算法]树分块+ ...

  2. placeholder样式设置

    在input框中有时想将输入的字和placeholder设为不同的颜色或其它效果,这时就可以用以下代码来对placeholder进行样式设置了. ::-webkit-input-placeholder ...

  3. PHP脚本运行时间

    http://www.cnblogs.com/zqifa/p/php-16.html PHP设置脚本最大执行时间的三种方法 php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中 ...

  4. js获得页面鼠标位置

    1.客户区坐标位置:clientX,clientY 鼠标相对于在当前页面可视范围左上角的位置 2.页面坐标位置:pageX,pageY 鼠标相对于页面左上角的位置(受滑动等影响,例如pageY=cli ...

  5. escapeRegExp捕捉通配符的代码解析

    费了好几个小时,把一小段正则代码搞通了,回顾并记下,加深记忆. 该段代码来自yii.js,它也是引自stackoverflow,地址是:http://stackoverflow.com/questio ...

  6. 【Explain】mysql之explain详解(分析索引的最佳使用)

    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain 这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句 ...

  7. selenium滚动到顶部与底部

    #coding=utf-8 from selenium import webdriver #滚动到浏览器顶部 js_top = "var q=document.documentElement ...

  8. 关于"轉淚點"与"轉捩點"

    经常看台湾偶像剧或台湾综艺节目的人,一定听过"转泪点"这个词,虽然我一直不知道这三个字具体是怎么写, 但其意思很容易明白,就是"转折点"的意思.今天无聊在看凤凰 ...

  9. 接口测试(概念、Postman、SoapUI、jmeter)

    一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...

  10. HDU 2894 DeBruijin (数位欧拉)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2894 题目大意:旋转鼓的表面分成m块扇形,如图所示(m=8).图中阴影区表示用导电材料制成,空白区用绝 ...