php系统核心库自带的函数中,字符串比数组函数较为简单,但还是有一些较为复杂但又很常用的函数,比如下面的这些函数

explode()函数

用一个字符串来分割另一个字符串,返回结果是一个数组

explode(字符串型分隔符,目标字符串,设置返回数组元素的上限)

特例1.如果分割符为空字符串,函数返回false

特例2.如果分割符在目标字符串中不出现,且第三个参数为负数,函数返回空数组

 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
var_dump( explode(" ", $pizza) );
// array(6) {
// [0] =>
// string(6) "piece1"
// [1] =>
// string(6) "piece2"
// [2] =>
// string(6) "piece3"
// [3] =>
// string(6) "piece4"
// [4] =>
// string(6) "piece5"
// [5] =>
// string(6) "piece6"
// }

特例

 // 特例1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
var_dump( explode("", $pizza, -2) );
// bool(false)
// 特例2
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
var_dump( explode(",", $pizza, -2) );
// array(0) {
// }

strpos()函数

查找针字符串在大海字符串中首次出现的位置,返回整型位置,或没找到false

strpos(大海字符串,针字符串,默认为0的查找位置)

大海捞针,其他类型的针会被转成字符串,默认为0的查找位置可以设置为1,2,3等等,php7.1之后这个参数才支持负数,没找到返回false

 // 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0

除此之外,strrpos ()函数则是 逆向查找首次出现的位置,或者说是 正向查找最后一次出现的位置。

substr()函数

获得目标字符串的子字符串

substr(目标字符串,整型开始位置,整型长度):子字符串或false

 // 开始位置为负
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d" // 截取的长度为负
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de" // 返回false的情况
$rest = substr("abcdef", 7, 1); // 返回 false
$rest = substr("abcdef", 2, -5); // 返回 false // 返回空字符串
$rest = substr("abcdef", 1, -5); // 返回 ''
$rest = substr("abcdef", 1, 0); // 返回 ''
$rest = substr("abcdef", 1, false); // 返回 ''
$rest = substr("abcdef", 1, null); // 返回 ''

php中比较复杂但又常用的字符串函数的更多相关文章

  1. 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame事件与设备轮询.http://www.cnblogs.com/msxh ...

  2. php常用的字符串函数

    addslashes -- 使用反斜线引用字符串 chr -- 返回相对应于 ascii 码值所指定的单个字符. chunk_split -- 将字符串分割成小块 count_chars --  返回 ...

  3. 常用的字符串函数-S

    header('content-type:text/html;charset=utf-f'); /* $var=addslashes($_GET['username']);//转义表单提交内容中的引号 ...

  4. 内核开发知识第一讲.内核中的数据类型.重要数据结构.常用内核API函数.

    一丶内核中的数据类型 在内核中.程序的编写不能简单的用基本数据类型了. 因为操作系统不同.很有可能造成数据类型的长度不一.而产生重大问题.所以在内核中. 数据类型都一定重定义了. 数据类型 重定义数据 ...

  5. mysql中常用的字符串函数

    写在分割线之前,个人以为,数据库应该具备简单的的数据加工能力.如同食品在吃之前,是要经过很多到工序的,有经过初加工.粗加工.精加工.深加工等.那么mysql也应该并必须担任起数据初加工以及粗加工的责任 ...

  6. PHP中常用的字符串函数?

    1.strlen() 2.strpos() 3.mb_strlen()

  7. C常用的字符串函数实现

    /** 查找字符串 source 中 是否有指定的子串出现,如果有返回第一个匹配的字符 @param source 源 @param chars 目标 @return 返回值 */ char *fin ...

  8. 【C】常用的字符串函数

    1. strcpy 函数名:strcpy 用法:char *strcpy(char *destin, char *cource) 功能:将一个字符串从一个拷贝到另外一个 程序示例: #include ...

  9. oc语言常用的字符串函数

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

随机推荐

  1. Bootstrap selectpicker 下拉框多选获取选中value和多选获取文本值

    1.页面代码: 页面引入: bootstrap-select.min.css和 bootstrap-select.min.js. defaults-zh_CN.min.js文件,并初始化下拉选项框. ...

  2. GO标准库flag

    Go语言内置的flag包实现了命令行参数的解析. os.Args os.Args是一个[]string类型. 获取命令参数示例: func main() { if len(os.Args) > ...

  3. gitconfig别名配置

    vim ~/.gitconfig 进行配置 [user] name = Your Name email = you@yourdomain.example.com [core] editor = vim ...

  4. PIT 编辑器编辑及协同架构说明

    pit 项目使用 quill-delta 作为数据层存储文档内容数据,quill-delta 是一个基于 OT 算法的库,用 quill-delta 作为数据层,不仅能很好的保存文档数据,还可以方便的 ...

  5. 已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位

    问题:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位. 出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家. 考察点:基础算法的灵活应 ...

  6. make 实例 一 3463

    ######################################################################### # # Makefile used for buil ...

  7. Unix下可用的五种 I/O 模型

    介绍 当TCP客户端同时处理两个输入时:标准输入和TCP套接字,当客户端fgets(在标准输入上)被阻塞并且服务器进程被终止时,我们遇到了问题.服务器TCP正确地将FIN发送到客户端TCP,但由于客户 ...

  8. FFmpeg 参数详解(二)

    https://blog.csdn.net/yizhizouxiaqu/article/details/52233673 5.参数选项 如果没有特殊声明,所有的数字参数都以一个字符串代表数字的形式作为 ...

  9. MacBook Pro设置外接显示器竖屏显示 切换主显示器

    切换主显示器设置 有一些使用 Mac 电脑的用户,比如笔记本用户,可能会由于屏幕太小想外接一个更大的显示器,也或是有多显示输出的需求.当 Mac 电脑上有了多个显示器以后,此时便会有主副显示区之分了. ...

  10. leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard

    576. Out of Boundary Paths 给你一个棋盘,并放一个东西在一个起始位置,上.下.左.右移动,移动n次,一共有多少种可能移出这个棋盘 https://www.cnblogs.co ...