这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
下面小编就为大家带来一篇 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 个字符方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0810/340402.html