本篇文章主要介绍php 实现截取gbk文档某个位置开始的n个字符方法,感兴趣的朋友参考下,希望对大家有所帮助。
cut.php:
#!/usr/bin/php
= $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
立即学习“PHP免费学习笔记(深入)”;
测试命令:
./cut.php 6 1
查看结果:
hexdump -C t.txt && hexdump -C a.txt
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐:
详述 Sublime Text 打开 GBK 格式中文乱码如何解决
php 通过iconv将字符串从GBK转换为UTF8字符集的方法











