php 截取GBK文档某个位置开始的n个字符方法

发布时间 - 2026-01-11 00:03:51    点击率:

cut.php:

#!/usr/bin/php
<?php
define('INPUT_FILE', 't.txt');
define('OUTPUT_FILE', 'a.txt');
$pos = max(intval($argv[1]), 0); 
$len = max(intval($argv[2]), 0); 
$file_size = filesize(INPUT_FILE);
if($pos >= $file_size) exit;
$fp = fopen(INPUT_FILE, 'rb');
$point = 0; //current byte position
$string = ''; 
while(ftell($fp) < $file_size) {
  if($point >= $pos + $len) break;$byte = fread($fp, 1); 
  //php version >= 5.4
  $char = unpack('C', $byte)[1];
  if($char <= 0x7f) {
    //single byte
    if($point >= $pos) $string .= $byte;
    $point += 1;
    continue;
  } else {
    //double bytes
    if($point >= $pos) {
      $string .= $byte.fread($fp, 1); 
    } else {
      fseek($fp, 1, SEEK_CUR);
    }
    $point += 1;
    continue;
  }  
}
fclose($fp);
file_put_contents(OUTPUT_FILE, $string);
?>

源文件t.txt内容:

dkei20王nnso

测试命令:


./cut.php 6 1

查看结果:

hexdump -C t.txt && hexdump -C a.txt

以上这篇php 截取GBK文档某个位置开始的n个字符方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# php  # 截取GBK文档某个位置  # 详解PHP用substr函数截取字符串中的某部分  # php 在字符串指定位置插入新字符的简单实现  # php截取字符串函数分享  # php截取字符串之截取utf8或gbk编码的中英文字符串示例  # php字符串截取问题  # 给大家  # 希望能  # 这篇  # 小编  # 大家多多  # 文档  # file_size  # filesize  # gt  # len  # max  # intval  # argv  # point  # current  # byte  # rb  # exit  # fp  # fopen 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 在Oracle关闭情况下如何修改spfile的参数  活动邀请函制作网站有哪些,活动邀请函文案?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  EditPlus中的正则表达式 实战(4)  如何用PHP快速搭建高效网站?分步指南  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何用5美元大硬盘VPS安全高效搭建个人网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何生成URL和重定向?(路由助手函数)  如何在不使用负向后查找的情况下匹配特定条件前的换行符  原生JS实现图片轮播切换效果  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  音响网站制作视频教程,隆霸音响官方网站?  Laravel storage目录权限问题_Laravel文件写入权限设置  javascript基本数据类型及类型检测常用方法小结  如何挑选优质建站一级代理提升网站排名?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  北京的网站制作公司有哪些,哪个视频网站最好?  海南网站制作公司有哪些,海口网是哪家的?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  如何在香港免费服务器上快速搭建网站?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  浅谈redis在项目中的应用  Laravel如何处理异常和错误?(Handler示例)  如何用美橙互联一键搭建多站合一网站?  魔方云NAT建站如何实现端口转发?  如何在阿里云购买域名并搭建网站?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel安装步骤详细教程_Laravel环境搭建指南  iOS验证手机号的正则表达式  香港服务器部署网站为何提示未备案?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何快速搭建虚拟主机网站?新手必看指南  怎样使用JSON进行数据交换_它有什么限制  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何使用 jQuery 正确渲染 Instagram 风格的标签列表