本篇文章主要介绍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
立即学习“PHP免费学习笔记(深入)”;
测试命令:
./cut.php 6 1
查看结果:
hexdump -C t.txt && hexdump -C a.txt
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐:
详述 Sublime Text 打开 GBK 格式中文乱码如何解决
php 通过iconv将字符串从GBK转换为UTF8字符集的方法
以上就是php 实现截取GBK文档某个位置开始的n个字符方法的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号