Hiho,
momentan arbeite ich an einem PHP-Script, welches eine Datei ausliest und mithilfe von Regex und Lookarounds bestimmte Werte ausliest und abspeichert.
Anfangs habe ich nur Werte ausgelesen, welche in keinem weiteren Zusammenhang mit anderen Werten stehen.
Ein Beispiel ist z.B. folgendes:
Regex:
Dateiausschnitt:
Bis dahin komme ich zurecht.
Jetzt möchte ich aus folgendem Ausschnitt die Werte von player_id, expeditionPoints und solvedEncounters auslesen.
Dazu habe ich bereits folgenen Code:
Hier wurde preg_match_all gewählt, weil es viele solcher Treffer gibt und ich alle haben möchte.
Ausgegeben wird mir hier also ein Array mit allen player_id's.
Meine Frage ist jetzt, kann ich meinen Ausdruck so erweitern, dass player_id, expeditionPoints und solvedEncounters ausgelesen werden und direkt zusammen in einem Array abgespeichert werden?
Oder muss ich player_id, expeditionPoints und solvedEncounters alle einzeln auslesen und mir dann alle in einem array zusammenfügen?
grüße
momentan arbeite ich an einem PHP-Script, welches eine Datei ausliest und mithilfe von Regex und Lookarounds bestimmte Werte ausliest und abspeichert.
Anfangs habe ich nur Werte ausgelesen, welche in keinem weiteren Zusammenhang mit anderen Werten stehen.
Ein Beispiel ist z.B. folgendes:
Regex:
PHP-Code:
if (preg_match("/\d+(?=,\\\\"type\\\\":\\\\"construction)/", $line, $match)) {
$Construction = $match[0];
unset($match);
}
Code:
{\"value\":7,\"type\":\"construction_rebate\",\"__class__\":\"ConstructionRebateBonus\"},
Jetzt möchte ich aus folgendem Ausschnitt die Werte von player_id, expeditionPoints und solvedEncounters auslesen.
Code:
{\"player\":{\"player_id\":1234567,\"name\":\"IchBinEinN4me\",\"avatar\":\"addon_portrait_id_kimberly\",\"__class__\":\"BasePlayer\"},\"expeditionPoints\":84304,\"solvedEncounters\":61,\"__class__\":\"GuildExpeditionContribution\"},
PHP-Code:
if (preg_match_all("/(?<=\\\\"player\\\\":{\\\\"player_id\\\\":)\d+/", $line, $gexpid)) {
print_r($gexpid);
}
Ausgegeben wird mir hier also ein Array mit allen player_id's.
Meine Frage ist jetzt, kann ich meinen Ausdruck so erweitern, dass player_id, expeditionPoints und solvedEncounters ausgelesen werden und direkt zusammen in einem Array abgespeichert werden?
Oder muss ich player_id, expeditionPoints und solvedEncounters alle einzeln auslesen und mir dann alle in einem array zusammenfügen?
grüße
Kommentar