当前位置:  开发笔记 > 编程语言 > 正文

如何使用php从文本文件中获取x个字符?

如何解决《如何使用php从文本文件中获取x个字符?》经验,为你挑选了1个好方法。



1> Ruslan Osman..:

使用的第五个参数file_get_contents

$s = file_get_contents('file', false, null, 0, 200);

不幸的是,这仅适用于256个字符集,并且不适用于多字节字符,因为PHP 不提供本机Unicode支持。

统一码

为了读取特定数量的Unicode字符,您将需要使用诸如intl和mbstring之类的PHP扩展来实现自己的功能。例如,fread可以按以下方式实现接受最大数量的UTF-8字符的版本:

function utf8_fread($handle, $length = null) {
  if ($length > 0) {
    $string = fread($handle, $length * 4);
    return $string ? mb_substr($string, 0, $length) : false;
  }

  return fread($handle);
}

如果$length为正,则该函数读取该数目的字符的UTF-8字符串可以占用的最大字节数(UTF-8字符表示为1至4个8位字节),并提取第一个$length多字节字符使用mb_substr。否则,该函数将读取整个文件。

的UTF-8版本file_get_contents可以类似的方式实现:

function utf8_file_get_contents(...$args) {
  if (!empty($args[4])) {
    $maxlen = $args[4];
    $args[4] *= 4;
    $string = call_user_func_array('file_get_contents', $args);
    return $string ? mb_substr($string, 0, $maxlen) : false;
  }

  return call_user_func_array('file_get_contents', $args);
}

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有