当前位置:首页 > PHP

php strstr 函数实现

2026-02-16 05:23:10PHP

PHP strstr 函数实现

strstr 是 PHP 中用于查找字符串首次出现的函数,返回从匹配位置开始到字符串末尾的部分。以下是其实现原理及自定义实现方法。

函数原型

strstr(string $haystack, string $needle, bool $before_needle = false): string|false
  • $haystack:被搜索的字符串。
  • $needle:要查找的子字符串。
  • $before_needle:若为 true,返回 $needle 之前的部分。

自定义实现

以下是一个模拟 strstr 功能的实现:

php strstr 函数实现

function my_strstr($haystack, $needle, $before_needle = false) {
    if (empty($needle)) {
        return false;
    }

    $pos = strpos($haystack, $needle);
    if ($pos === false) {
        return false;
    }

    if ($before_needle) {
        return substr($haystack, 0, $pos);
    } else {
        return substr($haystack, $pos);
    }
}

实现解析

  1. 参数校验:检查 $needle 是否为空,若为空直接返回 false
  2. 查找位置:使用 strpos 获取 $needle$haystack 中的首次出现位置。
  3. 结果处理:根据 $before_needle 参数决定返回匹配位置之前或之后的部分。

使用示例

$text = "Hello, world!";
echo my_strstr($text, "world");  // 输出 "world!"
echo my_strstr($text, "world", true);  // 输出 "Hello, "

注意事项

  • 实际 PHP 源码中的 strstr 是通过 C 语言实现的,效率更高。
  • 此实现未处理多字节字符(如 UTF-8),需结合 mb_strstr 处理此类场景。

标签: 函数php
分享给朋友:

相关文章

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 在 Vue 中,伪函数(Mock Functions)通常用于测试或模拟某些逻辑行为。以下是几种常见的实现方式: 使用 Jest 的 mock 功能 // 模拟一个 API…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php 实现无限分类

php 实现无限分类

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、菜单管理等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 这是最简单的实现方式,每个分类记录存储其父…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…