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

 更新时间:2017年03月08日 11:08:22   转载 投稿:jingxian  
下面小编就为大家带来一篇php 截取GBK文档某个位置开始的n个字符方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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 json相关函数用法示例

    php json相关函数用法示例

    这篇文章主要介绍了php json相关函数用法,列举了json_encode、json_decode及json_last_error的功能,并实例分析了json_encode与json_decode函数的具体使用技巧,需要的朋友可以参考下
    2017-03-03
  • php递归遍历多维数组的方法

    php递归遍历多维数组的方法

    这篇文章主要介绍了php递归遍历多维数组的方法,实例分析了php数组遍历的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • PHP检测接口Traversable用法详解

    PHP检测接口Traversable用法详解

    这篇文章主要介绍了PHP检测接口Traversable用法,结合实例形式分析了Traversable接口检测遍历功能的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • php获取系统变量方法小结

    php获取系统变量方法小结

    这篇文章主要介绍了php获取系统变量方法,实例总结了get_defined_vars、get_object_vars、phpinfo及phpversion等方法获取系统信息的相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • coreseek 搜索英文的问题详解

    coreseek 搜索英文的问题详解

    本篇文章是对coreseek搜索英文的问题进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别

    php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submi

    if(isset($_POST['submit'])) 它的意思是不是判断是否配置了$_POST['submit'] 这个变量呢? 如果有这个变量 在执行其它代码
    2011-02-02
  • PHP中$GLOBALS与global的区别详解

    PHP中$GLOBALS与global的区别详解

    今天小编就为大家分享一篇关于PHP中$GLOBALS与global的区别详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • PHP 通过Socket收发十六进制数据的实现代码

    PHP 通过Socket收发十六进制数据的实现代码

    以下是对PHP中通过Socket收发十六进制数据的实现代码进行了分析介绍。需要的朋友可以过来参考下
    2013-08-08
  • 修复ShopNC使用QQ 互联时提示100010 错误

    修复ShopNC使用QQ 互联时提示100010 错误

    本文给大家介绍了修复ShopNC使用QQ 互联时提示100010 错误的方法,以及QQ互联里面的处理方法,有需要的小伙伴可以参考下
    2015-11-11
  • php简单实现无限分类树形列表的方法

    php简单实现无限分类树形列表的方法

    这篇文章主要介绍了php简单实现无限分类树形列表的方法,实例分析了php通过数组实现树形列表的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论