Мне нужно найти строку в текстовом файле. Найдя, найдите первый экземпляр второй строки под первой строкой, затем получите текст, следующий сразу за второй строкой, и добавьте этот текст в переменную, которую я смогу использовать позже.
Вот пример текстовый файл, который мне нужно будет найти в ...
Tournament=Test
Number=897 // I need to locate this Number.
Currency=Primary
BuyIn=0.01+0.02
PrizeBonus=0
MultiplyBonus=No
Entrants=2
Late=0
Tickets=0
Removed=0
Rebuys=0
AddOns=0
RebuyCost=0+0
NetBonus=0
StopOnChop=No
Start=2020-03-02 04:07:56
Place2=Tuck (0)
Place1=TuckStream (0.02) // Then I need to locate "Place1=", then get the name that follows.
Stop=2020-03-02 04:08:47
Краткое содержание: Мне нужно взять имя победителя из текстового файла после того, как в нем будет найден правильный номер турнира. В одном текстовом файле хранятся несколько турниров. Текстовый файл обновляется после завершения турнира, затем запускается событие и предоставляет мне новый номер турнира в строке.
Прямо сейчас я просто собираю все содержимое файла (как выше) и размещение всей вещи, чтобы разойтись с веб-крючком. Я бы предпочел публиковать только имя победителя, "TuckStream", как в примере выше.
Мне также нужно выполнить другое действие только с именем игроков, поэтому мне нужно добавить его в переменную $ Winner (для пример). Вот текущий код в обработчике событий, который публикует все содержимое файла ...
case "TourneyFinish":
fwrite($f,"Event = " . $event . "\n");
fwrite($f,"Name = " . $_POST["Name"] . "\n");
fwrite($f,"Number = " . $_POST["Number"] . "\n");
fwrite($f,"Time = " . $_POST["Time"] . "\n");
fwrite($f,"\n");
$TourneyName = $_POST["Name"];
// wait for file to be written to disk
sleep(10);
// find latest file
$path = "C:/TourneyResults";
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
// post message in discord chan #tourney-annoucements
$getinfo = file_get_contents($path . "/" . $latest_filename);
$message = "**$TourneyName Results** \n $getinfo";
$data = ['content' => $message];
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents('https://discordapp.com/api/webhooks/mywebhook', false, $context);
break;