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截取字符串之截取utf8或gbk编码的中英文字符串示例
微博的发言有字数限制,其计数方式是,中文算2个,英文算1个,全角字符算2个,半角字符算1个.php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求.mb_strlen 可以根据字符集计算长度,比如utf8的中文计数为1,但这不符合微博字数限制需求,中文必须计算为2才可以.google了下,找到一个discuz中截取各种编码字符的类,改造了下,已经测试通过.其中参数$charset 只支持gbk与utf-8. 复制代码 代码如下: $a = "s@@你好";
-
php字符串截取问题
但是在英文和汉字混合的情况下会出现如下问题: 如果有这样一个字符串 $str="这是一个字符串"; 为了截取该串的前10个字符,使用 if(strlen($str)>10) $str=substr($str,10)."-"; 那么,echo $str的输出应该是"这是一个字-" 假设 $str="这是1个字符串": 这个串中包含了一个半角字符,同样执行: if(strlen($str)>10) $str=subst
-
php 在字符串指定位置插入新字符的简单实现
php 在字符串指定位置插入新字符的简单实现 因为项目用到DataTable表格加载后台数据,要连表查询虚拟机选中的策略状态,所以想到先把策略表内容取出来,组成一个'<select><option value="1"></option>[n个option]</select>'字符串,在遍历虚拟机列表时把他的策略值拼成 'value="1"' 这样的字符串,再利用explode()和implode() 函数,组成新的字符
-
详解PHP用substr函数截取字符串中的某部分
经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数.答案当然是有的.PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了. 现在整理了一下substr函数的用法,做了几个例子以解新人之惑,高手请飘过. 我们先来看一下PHP substr函数的语法: string substr(string string, int start, int [length]) 参数string为要操作的字符串 参数start为你要截取
-
php截取字符串函数分享
经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数.答案当然是有的.PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了,这里再给大家分享一个更加优秀的截取字符串的函数. 复制代码 代码如下: /** * 方法库-截取字符串-[该函数作者未知] * @param string $string 字符串 * @param int $length 字符长度 * @pa
-
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, 'r
-
C#编程读取文档Doc、Docx及Pdf内容的方法
本文实例讲述了C#编程读取文档Doc.Docx及Pdf内容的方法.分享给大家供大家参考.具体分析如下: Doc文档:Microsoft Word 14.0 Object Library (GAC对象,调用前需要安装word.安装的word版本不同,COM的版本号也会不同) Docx文档:Microsoft Word 14.0 Object Library (GAC对象,调用前需要安装word.安装的word版本不同,COM的版本号也会不同) Pdf文档:PDFBox /* 作者:GhostBea
-
Java 在 Word 文档中使用新文本替换指定文本的方法
创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替换. 工具/原料 Free Spire.Doc for Java(免费版) IntelliJ IDEA Jar文件获取及导入 方法1:先从官网下载jar包. 导入步骤: 下载后,解压文件,并将lib文件夹下的Spire.Doc.jar文件导入java程序.参考如下导入效果: 方法2:可通过maven
-
python将txt文档每行内容循环插入数据库的方法
如下所示: import pymysql import time import re def get_raw_label(rece): re1 = r'"([\s\S]*?)": "' #-------------正则表达式 reg1 = re.compile(re1) # ------------编译一下 str1 = reg1.findall(rece) return str1 def get_detail(rece): re2 = r'": "([\
-
仅img元素创建后不添加到文档中会执行onload事件的解决方法
示例 复制代码 代码如下: <!DOCTYPE HTML> <HTML> <HEAD> <meta charset="utf-8" /> <title>仅img元素创建后却不添加到文档中会执行onload事件</title> </HEAD> <BODY> <script> var img = document.createElement('img'); img.src = &qu
-
C#向word文档插入新段落及隐藏段落的方法
编辑Word文档时,我们有时会突然想增加一段新内容:而将word文档给他人浏览时,有些信息我们是不想让他人看到的.那么如何运用C#编程的方式巧妙地插入或隐藏段落呢?本文将与大家分享一种向Word文档插入新段落及隐藏段落的好方法. 这里使用的是Free Spire.Doc for .NET组件,该组件允许开发人员轻松并灵活地操作Word文档. 向Word文档插入一个新段落的操作步骤 步骤1:新建一个文档并加载现有文档 Document document = new Document(); docu
-
Python 使用tf-idf算法计算文档关键字权重并生成词云的方法
Python 使用tf-idf算法计算文档关键字权重,并生成词云 1. 根据tf-idf计算一个文档的关键词或者短语: 代码如下: 注意需要安装pip install sklean: from re import split from jieba.posseg import dt from sklearn.feature_extraction.text import TfidfVectorizer from collections import Counter from time import
-
Java解析word,获取文档中图片位置的方法
前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术,分别是HWPF(.doc)和XWPF(.docx).如果你对这两个技术熟悉的话,就应该能明白使用java解析word文档的痛楚所在. 其中两个最大的问题在于: 第一是这两个类并没有统一的父类和接口(隔壁的XSSF和HSSF投过来鄙视的眼光),所以没法进行同一格式的接口式编程: 第二是官方API中并
-
PHP使用DOM和simplexml读取xml文档的方法示例
本文实例讲述了PHP使用DOM和simplexml读取xml文档的方法.分享给大家供大家参考,具体如下: 实例 用DOM获取下列xml文档中所有金庸小说的书名,该xml文档所在位置为 ./books.xml: <?xml version="1.0" encoding="utf-8"?> <root> <book> <title>天龙八部</title> <author>金庸</autho
-
我的文档和QQ聊天记录备份与恢复技巧
"我的文档"备份与恢复技巧: 最原始的办法:重装系统前将"我的文档"下的所有文件复制到可移动磁盘(移动硬盘)或者系统盘外的其他地方,然后在系统重装后在复制到新的"我的文档"所在目录下即可: 本站推荐方法:平时在使用电脑的时候将"我的文档"的属性进行设置,设置的办法是在系统盘外的盘符下建立一个新文件夹(比如my document),然后在"我的文档"右键-移动-找到刚建立的文件夹(my document)-
随机推荐
- AngularJS 表达式详解及实例代码
- mongodb主从复制_动力节点Java学院整理
- Centos6.4编译安装mysql 8.0.0 详细教程
- jQuery实现页面滚动时层智能浮动定位实例探讨
- ASP.NET2.0数据库入门之SqlDataSource
- 在ASP.NET中支持断点续传下载大文件(ZT)源码
- php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
- CoordinatorLayout的使用如此简单(Android)
- Android ViewDragHelper仿淘宝拖动加载效果
- 基于jquery循环map功能的代码
- 深入理解JavaScript中Ajax
- ASP.NET导出数据到Excel的实现方法
- PHP经典面试题之设计模式(经常遇到)
- 全面解析Bootstrap表单样式的使用
- JQuery分别取得每行最后一列和最后一行的示例代码
- javascript asp教程创建数据库连接
- JS仿iGoogle自定义首页模块拖拽特效的方法
- Android如何实现锁屏状态下弹窗
- Android实现轮播效果的两种方法
- Android 中raw和assets文件夹的区别