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


Posted in PHP onMarch 08, 2017

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 相关文章推荐
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
php文本转图片自动换行的方法
Mar 13 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php截取字符串函数分享
Feb 02 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
php读取文件内容到数组的方法
Mar 16 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
php封装json通信接口详解及实例
Mar 07 #PHP
PHP获取真实客户端的真实IP
Mar 07 #PHP
php实现简单加入购物车功能
Mar 07 #PHP
mac os快速切换多个PHP版本的方法
Mar 07 #PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 #PHP
PHP实现添加购物车功能
Mar 06 #PHP
PHP自动补全表单的两种方法
Mar 06 #PHP
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHP Curl出现403错误的解决办法
2014/05/29 PHP
php常用数学函数汇总
2014/11/21 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
javascript数组去重小结
2016/03/07 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python获取多线程及子线程的返回值
2017/11/15 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
产品促销活动策划书
2014/01/15 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
技术合作协议书范本
2014/04/18 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript