$rows= file_get_contents("ваш файл.txt");
$rows = mb_split("\r\n",$rows);
$rows= array_values(array_filter($rows,function($e){return mb_split("\|",$e)[1] == "busfor";}));
$onlyUnique = true;//доставать только уникальные
$result = [];
for($i = 0; $i < 7 && count($rows) > 0;$i++){
$inx =rand(0,count($rows)-1);
$result[] = $rows[$inx];
if($onlyUnique)
array_splice($rows,$inx,1);
}
var_dump($result);
$elementQuantity = 7;
$searchString = 'busfor';
$fileName = 'filename'; //путь до файла
$filteredArray = array_filter( //возвращает массив, содержащий только строки с вхождением подстроки
file($fileName), //читаем файл в массив построчно,
fn (string $str): bool => str_contains($str, $searchString ),//фильтруем массив, оставляя только строки с искомым словом
);
shuffle($filteredArray); //перемешаем массив
$result = array_slice($filteredArray, 0, $elementQuantity);