遍历文本文件,修改并编写新文件PHP

时间:2019-04-26 23:35:10

标签: php

我有一个名为test.txt的文件。它具有多行文本,如下所示:

Test Data:
Tester 2 Data:
Tests 3 Data:

我想要一个PHP脚本来打开该文件,在每一行的单词Data:之前剥离所有文本并输出结果:

Data:
Data:
Data:
到目前为止,

我的 PHP

$myfile = fopen("test.txt", "r") or die("Unable to open file!");
$data = fread($myfile,filesize("test.txt"));

// foreach line do this
$line = strstr($data,"Data:");
//append $line to newtest.txt
// endforeach

fclose($myfile);

1 个答案:

答案 0 :(得分:2)

您可以使用file()逐行打开和循环浏览文件。

由于您要删除Data:之前的所有内容,因此请根据提供的测试数据(这是我要做的所有事情),我们只需要知道行数即可。因此,我们可以使用count()来获取该信息。

然后将新数据构造为变量,最后使用file_put_contents()将该变量写入(新)文件。

使用trim()将删除最后一个额外的换行符。

$raw = file("./test.txt");
$lineCount = count($raw);
$newFile = null;
do {
    $newFile .= "Data:\r\n";
} while(--$lineCount > 0);
file_put_contents('./test-new.txt',trim($newFile));

编辑: 正如不要惊慌在下面的评论中所说,您可以使用str_repeat()甚至删除do while循环。

以下是count()随行移动的版本:

$raw = file("./test.txt");
$newFile = str_repeat("Data:\r\n",count($raw));
file_put_contents('./test-new.txt',trim($newFile));