当前位置: 首页 > news >正文

php函数 二

一 字符串包含

1.1 str_starts_with(string $haystack, string $needle)

php8版本中新函数。

检查字符串是否以指定子串开头,区分大小写。返回布尔值。

$haystack待判断的字符串,$needle需要查询的内容。

function test1() {$str = "Qwe asd zxc 123";if (str_starts_with($str, '')) {echo __LINE__ . PHP_EOL; //5}if (str_starts_with($str, 'Qwe')) {echo __LINE__ . PHP_EOL; //8}if (str_starts_with($str, 'qwe')) {echo __LINE__ . PHP_EOL; //11}
}
test1();

 测试结果

5
8

1.2 str_ends_with(string $haystack, string $needle)

php8版本中新函数。

检查字符串是否以指定子串结尾。返回布尔值。区分大小写。

$haystack待判断的字符串,$needle需要查询的内容。

function test3() {$str = "Qwe asd zxc 123 z";var_dump(str_ends_with($str, "Z"));var_dump(str_ends_with($str, "z"));var_dump(str_ends_with($str, "q"));var_dump(str_ends_with($str, "123"));
}
test3();

 测试结果

bool(false)
bool(true)
bool(false)
bool(false)

1.3 strstr(string $haystack, string $needle, bool $before_needle = false)

查找字符串的首次出现。返回字符串或布尔值。区分大小写。

1.4 stristr(string $haystack, string $needle, bool $before_needle = false)

strstr()函数的忽略大小写版本。

function test4() {$str = "Qwe asd zxc 123 z";var_dump(strstr($str, "Qwe"));var_dump(strstr($str, "we"));var_dump(strstr($str, "we", true));var_dump(strstr($str, "q"));var_dump(stristr($str, "q"));
}
test4();

 测试结果

string(17) "Qwe asd zxc 123 z"
string(16) "we asd zxc 123 z"
string(1) "Q"
bool(false)
string(17) "Qwe asd zxc 123 z"

1.5 strpos(string $haystack, string $needle, int $offset = 0)

查找字符串首次出现的位置。计算从零开始,也就是返回1,代表字符串中第二个位置;偏移到字符串第二个字符,偏移量是2。区分大小写。返回整数或者布尔值。

第一个字符返回值为0,应该使用0===$value判断。不存在返回false,应该使用false===$value判断。

$offset 为偏移量。

1.6 stripos(string $haystack, string $needle, int $offset = 0)

strpos()函数的忽略大小写版本。

function test5() {$str = "Qwe asd zxc 123 we";var_dump(strpos($str, "Qwe"));var_dump(strpos($str, "we"));var_dump(strpos($str, "we", 2));var_dump(strpos($str, "q"));var_dump(stripos($str, "WE"));
}
test5();

 测试结果

int(0)
int(1)
int(16)
bool(false)
int(1)

1.7 strpbrk(string $string, string $characters)

在字符串中查找一组字符的任何一个字符。

返回以找到的字符开始的子字符串。如果没有找到,则返回 false

$string 在string中查找characters字符串。

$characters 要查询的内容。区分大小写。

function test7() {$str = "Qwe asd zxc 123 we";$info = strpbrk($str, 'a');var_dump($info);$info = strpbrk($str, 'A');var_dump($info);
}
test7();

 测试结果

string(14) "asd zxc 123 we"
bool(false)

1.8 preg_match()

执行匹配正则表达式。匹配到返回1,未匹配到返回0或者false。

参数

  1. $pattern 正则表达式
  2. $subject 需验证的字符串。 避免使用substr()。
  3. &$matches 匹配结果
  4. $flags  偏移量
  5. $offset 开始搜索位置

$flags说明

  1. PREG_OFFSET_CAPTURE 附加偏移量
  2. PREG_UNMATCHED_AS_NULL 使用该标记,未匹配的子组会报告为 null;未使用时,报告为空的 string。
function test8() {$str = "Qwe asd zxc 123 we";$pattern = '/(?<=d).*(?=w)/';$result = preg_match($pattern, $str, $info, PREG_OFFSET_CAPTURE);var_dump($result);var_dump($info);$result = preg_match($pattern, $str, $info, PREG_OFFSET_CAPTURE, 8);var_dump($result);var_dump($info);
}
test8();

 测试结果

int(1)
array(1) {[0]=>array(2) {[0]=>string(9) " zxc 123 "[1]=>int(7)}
}
int(0)
array(0) {
}

1.9 str_word_count(string $string, int $format = 0, ?string $characters = null)

返回字符串中单词的使用情况。返回数组或整数

如果指定了 format 参数,返回值将是一个数组,数组的内容则取决于 format 参数。

$format

  1. 0 返回单词数量
  2. 1 返回一个包含 string 中全部单词的数组
  3. 2 返回关联数组。数组的键是单词在 string 中出现的数值位置,数组的值是这个单词

$characters 附加的字符串列表,其中的字符将被视为单词的一部分。

function test9() {$str = "Qwe asd zxc 123 we";$info = str_word_count($str);var_dump($info);$info = str_word_count($str, 1);var_dump($info);$info = str_word_count($str, 0, "123456^ ^");var_dump($info);$info = str_word_count($str, 1, "123456^ ^");var_dump($info);$info = str_word_count($str, 2, "123456^ ^");var_dump($info);
}
test9();

测试结果

int(4)
array(4) {[0]=>string(3) "Qwe"[1]=>string(3) "asd"[2]=>string(3) "zxc"[3]=>string(2) "we"
}
int(1)
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}

 被操作的字符串中数字会被过滤掉,除非在$characters中添加数字或需最为单词的字符。

没发现$format 设置为1或2中区别。

二 字符串分割

2.1 explode(string $separator, string $string, int $limit = PHP_INT_MAX)

使用一个字符串分割另一个字符串。

$separator 分隔符

$string 字符串

$limit 限制数量。

  1. 正数返回从0开始的指定长度内容,最后一个值为字符串剩余部分。
  2. 负数返回从末尾开始倒数的内容,直到数组开始,和substr长度的设置一个原理。
  3. 传0视为1,返回包含整个字符串的数组。
  4. 默认为内置常量PHP_INT_MAX,最大整数。
  5. 无对应内容,返回包含整个字符串的数组。
function test6() {$str = "Qwe asd zxc 123 we";$arr2 = explode("W", $str);var_dump($arr2);$arr3 = explode(" ", $str, -2);var_dump($arr3);$arr1 = explode(" ", $str, 0);var_dump($arr1);$arr4 = explode(" ", $str, 1);var_dump($arr4);$arr5 = explode(" ", $str, 2);var_dump($arr5);
}
test6();

 测试结果

array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(3) {[0]=>string(3) "Qwe"[1]=>string(3) "asd"[2]=>string(3) "zxc"
}
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(2) {[0]=>string(3) "Qwe"[1]=>string(14) "asd zxc 123 we"
}

2.2 substr(string $string, int $offset, ?int $length = null)

返回字符串字串。字符串长度小于偏移量返回空字符串。

$offset 偏移量。

  1. 为正数从0开始计算。
  2. 为负从尾开始计算,倒数指定的偏移量开始计算指定长度。

$length 指定长度。

  1. 为正数offset 处开始最多包括 length 个字符。最多返回到字符串结尾,即length大于字符串长度,返回到字符串结尾的长度。
  2. 为0,返回空字符串
  3. 为null返回整个字符串
  4. 为负,那么 string 末尾处的 length 个字符将会被省略。若 offset 是负数则从字符串尾部算起。如果 offset 不在这段文本中,那么将返回空字符串。
function test10() {$str = "Qwe asd zxc 123 we";$info = substr($str, 2);var_dump($info);$info = substr($str, 2, 2);var_dump($info);$info = substr($str, 2, 20);var_dump($info);$info = substr($str, -10, 2);var_dump($info);$info = substr($str, -10, 20);var_dump($info);$info = substr($str, 0);var_dump($info);
}
test10();

测试结果

string(16) "e asd zxc 123 we"
string(2) "e "
string(16) "e asd zxc 123 we"
string(2) "zx"
string(10) "zxc 123 we"
string(18) "Qwe asd zxc 123 we"

2.3 substr_count(string $haystack,string $needle,int $offset = 0,?int $length = null)

计算字串出现的次数。该函数返回 int。

$haystack中查找$needle字符串。

$offset 偏移量。开始计数的偏移位置。如果是负数,就从字符的末尾开始统计。

$length 指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 haystack 的总长度,则打印警告信息。 负数的长度 length 是从 haystack 的末尾开始统计的。

function test11() {$str = "Qwe asd zxc 123 we";try{$info = substr_count($str, " ", 5, 5);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}try{$info = substr_count($str, " ", 5, 100);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}try{$info = substr_count($str, " ", -5, 5);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}try{$info = substr_count($str, " ", -5, 100);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}
}
test11();

测试结果

int(1)
string(117) "#0 D:\workspace\php\test\test12.php(130): substr_count()
#1 D:\workspace\php\test\test12.php(150): test11()
#2 {main}"
int(1)
string(117) "#0 D:\workspace\php\test\test12.php(144): substr_count()
#1 D:\workspace\php\test\test12.php(150): test11()
#2 {main}"

我本地php8版本,cache(\Exception $e){} 捕获不到异常……


 

http://www.lryc.cn/news/289167.html

相关文章:

  • IDC机房交换机核心技术与应用指南
  • Compose | UI组件(五) | Button 按钮组件
  • 【leetcode刷刷】235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作 、450.删除二叉搜索树中的节点
  • YoloV8改进策略:BackBone改进|DCNv4最新实践|高效涨点|多种改进教程|完整论文翻译
  • 高中数学常识
  • docker之部署青龙面板
  • Type-C平板接口协议芯片介绍,实现单C口充放电功能
  • 系统架构演变
  • Oracle PL/SQL Programming 第2章:Creating and Running PL/SQL Code 读书笔记
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Swiper容器组件
  • 『建议收藏』OpenAI官方出的Prompt提示词教程中文版来了!
  • 牛刀小试 - C++ 推箱子小游戏
  • 手机视频压缩怎么压缩?一键瘦身~
  • 目标主力能源:华为智能光伏的时代指南针
  • 每日一题 力扣2846 边权重均等查询
  • 【Docker】Docker学习⑨ - 单机编排之Docker Compose
  • ES6笔记-symbol
  • C++设计模式介绍:优雅编程的艺术
  • GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)
  • Unity——八叉树的原理与实现
  • android 自定义软键盘的显示和隐藏
  • 基于openssl v3搭建ssl安全加固的c++ tcpserver
  • 11.2 Web开发_CSS入门(❤❤)
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • ATF(TF-A)安全通告TF-V11——恶意的SDEI SMC可能导致越界内存读取(CVE-2023-49100)
  • 如何查找SpringBoot应用中的请求路径(不使用idea)
  • 56. 合并区间 - 力扣(LeetCode)
  • 数据结构篇-03:堆实现优先级队列
  • linux clickhouse 安装
  • 【游戏客户端开发的进阶路线】