当前位置:首页 > 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 功能的实现:

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 strstr 函数实现

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

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $d…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 &l…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…