stream_get_line如何设置开始读取文件的位置



这是一个简单的问题,但我看了php文档,没有发现任何东西,所以我问你是否有任何想法/方法来实现我的目标。

我正在阅读一个文件,并试图让它开始用特定的单词写作。

(我得到的文件来自Curl命令:

curl -F 'file@logbackup-infitarif' https://mylink我的php:

<?php
// print_r($_FILES); 
print_r($_FILES["file"]); 
$file = fopen($_FILES["file"]["tmp_name"], 'r');
print_r($file);
var_dump(get_resource_type($file));


print(stream_get_line($file, $lengh, $ending = "speedup"));
?>

实际上,使用此代码,它从一开始就读取所有文件->quot;加速";。但我希望它从";到单词/句子";总尺寸为"。

它正在读取的文件中的文本:

logbackup-final.txt                                                                                 
logbackup-final.txt                                                                                 0000777 0002002 0000144 00000000331 14303633743 013533  0                                                                                                    ustar   stag                            users                                                                                                                                                                                                                  2022-08-30
receiving incremental file list
2022/08/30 16:09:56|test/
2022/08/30 16:09:56|test/DiskStation214_20220622.dss
sent 47 bytes  received 11,370 bytes  7,611.33 bytes/sec
total size is 15,402  speedup is 1.35

有什么想法或方法吗?谢谢!:(

也就是说,只需对文件进行简单的逐行读取,并检查每行是否有您正在搜索的信息

$find_str = 'total size is';
$keep_for_later = '';
$fp = @fopen($_FILES["file"]["tmp_name"], "r");
if ($fp) {
while (($line = fgets($fp, 4096)) !== false) {
if ( strpos($line, $find_str) !== false ) {
$keep_for_later = $line;
}
}
fclose($fp);
}
echo $keep_for_later;

最新更新