PHP截取内容指定行数之前或之后的内容

作者头像
首页 🌐建站技术 正文

PHP截取内容指定行数之前或之后的内容

四种方式:

// 保留第3行及之后
sliceLines($content, 3, 'after_inclusive');

// 保留第3行之后(不包含第3行)
sliceLines($content, 3, 'after_exclusive');

// 保留第3行及之前
sliceLines($content, 3, 'before_inclusive');

// 保留第3行之前(不包含第3行)
sliceLines($content, 3, 'before_exclusive');

function sliceLines(string $content, int $target, string $mode = 'after_inclusive', string $eol = null): string{
    if ($target < 1) {
        return $content;
    }

    // 修复点1:补全三元运算符的括号
    $eol = $eol ?? (strpos($content, "\r\n") !== false ? "\r\n" : "\n"); 

    // 分割为行数组(保留空行)
    $lines = preg_split('/\R/', $content);

    // 修复点2:添加总行数校验
    $total = count($lines);
    if ($target > $total) {
        return in_array($mode, ['before_inclusive', 'before_exclusive']) ? $content : '';
    }

    // 根据模式计算切片参数
    switch ($mode) {
        case 'after_inclusive':
            $offset = $target - 1;
            $length = null;
            break;
        case 'after_exclusive':
            $offset = $target;
            $length = null;
            break;
        case 'before_inclusive':
            $offset = 0;
            $length = $target;
            break;
        case 'before_exclusive':
            $offset = 0;
            $length = $target - 1;
            break;
        default:
            return $content;
    }

    // 执行数组切片
    $result = array_slice($lines, $offset, $length);

    // 还原换行符并返回
    return implode($eol, $result);
}
阿影博客
抱歉,下载地址 登陆 后刷新可见
本站资源仅供学习交流使用请勿商业运营,严禁使用模板&源码从事违法,侵权等非法活动!如链接失效内容有误,请到评论反馈。

免费声明

  1. 本网站的文章内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:304906607进行删除处理。
  2. 文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)。
  3. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
  4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
  5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
  6. 本站永久网址:https://www.aybk.cn
自动点击宝25.06.15多个自动脚本极速点击
« 上一篇 06-20
CentOS服务器上用Squid搭建带认证的HTTP代理最简单便捷的方法
下一篇 » 06-20

发表评论

请先登录后才能发表评论

没有更多评论了

个人信息

HI好朋友 ! 请登录
开通会员,享受下载全站资源特权。
百度一下

随便看看

大家都在看

2025年 乙巳年 蛇年
13 : 36 : 00
公历日期
9月26日
农历日期
八月初五
星期
星期五
下午好
金秋时节,愿您收获满满
距离国庆节还有5天
登陆
还没有账号?立即注册
点击按钮进行验证
忘记密码?
登陆
忘记密码
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
重置密码
注册
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
立即注册