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 相关文章推荐
php miniBB中文乱码问题解决方法
Nov 25 PHP
PHP实现下载功能的代码
Sep 29 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
又拍云异步上传实例教程详解
Apr 19 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
微信支付开发交易通知实例
Jul 12 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
php中让人头疼的浮点数运算分析
Oct 10 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
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
python读取Android permission文件
2013/11/01 Python
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python实现随机漫步功能
2018/07/09 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
技能竞赛活动方案
2014/02/21 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
硕士学位申请报告
2015/05/15 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
Python基础之数据类型知识汇总
2021/05/18 Python
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
Python数据处理的三个实用技巧分享
2022/04/01 Python