php 截取GBK文档某个位置开始的n个字符方法
发布:smiling 来源: PHP粉丝网 添加日期:2018-08-06 17:36:57 浏览: 评论:0
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=<a href="/tags.php/fopen/" target="_blank">fopen</a>(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);
- } //phpfensi.com
- $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
Tags: php截取GBK php某个位置
- 上一篇:PHP获取真实客户端的真实IP
- 下一篇:PHP获取随机数的方法
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)