获取文本文件的前 100 个字符和后 100 个字符

Get first and last 100 characters of a text file

我有一个文本文件,在该文本文件中,只有几行但包含大约 5-10 百万个字符。我正在使用 file_get_contents 但是因为它读取整个文件所以性能变得非常慢并且有时在执行时挂起。有没有更有效的方法来获取前 100 个字符和后 100 个字符?

您可以使用 fread 指定必须从文件中读取的字节数。

例如:

$handle = fopen($filename, 'r');
$contents = fread($handle, 100);
fclose($handle);
echo $contents;

但是,无法确定这将是一个包含 100 个字符的字符串。这取决于字符编码。

试试这个来获取前 100 个字符:

$fp = fopen('test.txt', 'r');
$data = fread($fp, 100);
echo $data;
fclose($fp);

并获取最后 100 个字符:

$fp = fopen('test.txt', 'r');
fseek($fp, -100, SEEK_END);
$data = fread($fp, 100);
echo $data;
fclose($fp);