我有一个名为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);
答案 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));