Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取文本文件的第一个和最后100个字符_Php_Performance_Readfile - Fatal编程技术网

Php 获取文本文件的第一个和最后100个字符

Php 获取文本文件的第一个和最后100个字符,php,performance,readfile,Php,Performance,Readfile,我有一个文本文件,在这个文本文件中,只有几行,但包含大约500-1000万个字符。我使用的是file\u get\u contents,但因为它读取整个文件,所以性能变得非常慢,执行时有时会挂起。是否有更有效的方法获取第一个和最后一个100个字符?您可以使用该方法指定必须从文件中读取的字节数 例如: $handle = fopen($filename, 'r'); $contents = fread($handle, 100); fclose($handle); echo $contents;

我有一个文本文件,在这个文本文件中,只有几行,但包含大约500-1000万个字符。我使用的是
file\u get\u contents
,但因为它读取整个文件,所以性能变得非常慢,执行时有时会挂起。是否有更有效的方法获取第一个和最后一个100个字符?

您可以使用该方法指定必须从文件中读取的字节数

例如:

$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);
$fp = fopen('test.txt', 'r');
fseek($fp, -100, SEEK_END);
$data = fread($fp, 100);
echo $data;
fclose($fp);
并获取最后100个字符:

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

这正是我想要的。非常感谢。