我在文件夹中有一些.txt文件。每个文件有 6 行。我的文件看起来像这样:messages
id_20197456 // identity
Friends //category
Test // title
10 Feb 2020 22:28 // date
John // writer
Lorum ipsum.... // message
类别的名称始终在第二行
我总共有5个文件:4个类别,1个类别。现在我想去掉具有类别的文件FriendsOffsideOffside
这就是我到目前为止所拥有的,以捕获带有类别的文件:Offside
$filterthis = strtolower('Offside');
$newslist = array();
$files = glob("messages/*.txt"); // Specify the file directory by extension (.txt)
foreach($files as $file) { // Loop through the files in the directory
$handle = @fopen($file, "r");
if ($handle) {
$lines = file($file); //file into an array
$buffer = $lines[1]; // grab category line
if(strpos(strtolower($buffer), $filterthis) !== FALSE) { // strtolower; search word not case sensitive
$newslist[] = $file; // The filename of the match
// below the file which has Offside category
print_r($newslist); // outputs: Array ( [0] => messages/id_20200210222825.txt )
}
fclose($handle);
}
}
为了输出所有文件,我使用一个foreach循环:
foreach($newslist as $file) {
$lines = file($file, FILE_IGNORE_NEW_LINES); // filedata into an array
$file_id = $lines[0]; // file id
$news_category = $lines[1]; // news category
$news_title = $lines[2]; // news title
$news_date = $lines[3]; // news date
$news_author = $lines[4]; // author name
$news_message = $lines[5]; // news message
fclose($fh);
// all the echos's come here...
}
我的问题:如何过滤在前程中没有类别的文件?所以前期应该输出所有的文件,除了那些有类别的文件?OffsideOffside
波斯汪