php 截取GBK文档某个位置开始的n个字符方法
cut.php:
#!/usr/bin/php
=$file_size)exit;
$fp=fopen(INPUT_FILE,'rb');
$point=0;//currentbyteposition
$string='';
while(ftell($fp)<$file_size){
if($point>=$pos+$len)break;$byte=fread($fp,1);
//phpversion>=5.4
$char=unpack('C',$byte)[1];
if($char<=0x7f){
//singlebyte
if($point>=$pos)$string.=$byte;
$point+=1;
continue;
}else{
//doublebytes
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.php61
查看结果:
hexdump-Ct.txt&&hexdump-Ca.txt
以上这篇php截取GBK文档某个位置开始的n个字符方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。