Improve parser using REGEX capturing group
This commit is contained in:
@ -18,27 +18,17 @@ class StealerParser
|
|||||||
*/
|
*/
|
||||||
public function parse(): array{
|
public function parse(): array{
|
||||||
|
|
||||||
$lines = explode("\n", $this->content);
|
$items = explode("===============\n", $this->content);
|
||||||
$credentials = [];
|
$credentials = [];
|
||||||
$current = [];
|
|
||||||
|
|
||||||
foreach ($lines as $line) {
|
foreach ($items as $item) {
|
||||||
if (str_starts_with($line, 'URL:')) {
|
preg_match_all('/URL:\s(.*)\nUsername:\s(.*)\nPassword:\s(.*)\nApplication:\s(.*)\n/m',$item,$matches);
|
||||||
if (!empty($current)) {
|
$credentials[] = [
|
||||||
$credentials[] = $current;
|
'url' => trim($matches[1][0] ?? ''),
|
||||||
}
|
'username' => trim($matches[2][0] ?? ''),
|
||||||
$current = ['url' => trim(substr($line, 4))];
|
'password' => trim($matches[3][0] ?? ''),
|
||||||
} elseif (str_starts_with($line, 'Username:')) {
|
'application' => trim($matches[4][0] ?? '')
|
||||||
$current['username'] = trim(substr($line, 9));
|
];
|
||||||
} elseif (str_starts_with($line, 'Password:')) {
|
|
||||||
$current['password'] = trim(substr($line, 9));
|
|
||||||
} elseif (str_starts_with($line, 'Application:')) {
|
|
||||||
$current['application'] = trim(substr($line, 12));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($current)) {
|
|
||||||
$credentials[] = $current;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $credentials;
|
return $credentials;
|
||||||
|
|||||||
Reference in New Issue
Block a user