从该字符串格式中获取子字符串
Get substrings from that string format
我有以下数据,我可以有 3 种不同的情况:
案例 1:
"afield1" : "something1", "credentials" : [] , "afield2" : "something2"
案例二:
"afield1" : "something1", "credentials" : [ ["root", "toor"] ] , "afield2" = "something2"
案例 3:
"afield1" : "something1", "credentials" : [ [ "admin", "support" ], [
"admin", "password" ], [ "admin", "123321" ] ] , "afield2" : "something2"
如何获取用户名和密码?
编辑:
我为第一种情况找到了一个愚蠢的方法..但其他情况非常简单..它不能在逗号 (,) 或小括号 ([ ]) 上展开...如果有人知道如何做,请帮助爆炸正确或从那个东西中获取值...
您可以像在这段代码中那样使用 preg_match
和 preg_match_all
函数
$credentials = [];
$text = '"afield1" = "something1", "credentials" : [ [ "admin", "support" ], ["admin", "pass]word" ], [ "admin", "123321" ] ] , "afield2" = "something2"';
preg_match('/"credentials" : \[(.*?)\] ,/i', $text, $matches);
preg_match_all('/\[[ ]?"(.*?)"[ ]?\]/i', $matches[1], $matches2);
foreach ($matches2[1] as $match) {
preg_match_all('/"(.*?)"/i', '"' . $match . '"', $matches3);
$credential = ['login' => $matches3[1][0], 'password' => $matches3[1][1]];
$credentials[] = $credential;
}
var_dump($credentials);
在输出中你可以看到
array(3) {
[0]=>
array(2) {
["login"]=>
string(5) "admin"
["password"]=>
string(7) "support"
}
[1]=>
array(2) {
["login"]=>
string(5) "admin"
["password"]=>
string(8) "pass]word"
}
[2]=>
array(2) {
["login"]=>
string(5) "admin"
["password"]=>
string(6) "123321"
}
}
此代码适用于您问题中的其他示例。
我有以下数据,我可以有 3 种不同的情况:
案例 1:
"afield1" : "something1", "credentials" : [] , "afield2" : "something2"
案例二:
"afield1" : "something1", "credentials" : [ ["root", "toor"] ] , "afield2" = "something2"
案例 3:
"afield1" : "something1", "credentials" : [ [ "admin", "support" ], [
"admin", "password" ], [ "admin", "123321" ] ] , "afield2" : "something2"
如何获取用户名和密码?
编辑:
我为第一种情况找到了一个愚蠢的方法..但其他情况非常简单..它不能在逗号 (,) 或小括号 ([ ]) 上展开...如果有人知道如何做,请帮助爆炸正确或从那个东西中获取值...
您可以像在这段代码中那样使用 preg_match
和 preg_match_all
函数
$credentials = [];
$text = '"afield1" = "something1", "credentials" : [ [ "admin", "support" ], ["admin", "pass]word" ], [ "admin", "123321" ] ] , "afield2" = "something2"';
preg_match('/"credentials" : \[(.*?)\] ,/i', $text, $matches);
preg_match_all('/\[[ ]?"(.*?)"[ ]?\]/i', $matches[1], $matches2);
foreach ($matches2[1] as $match) {
preg_match_all('/"(.*?)"/i', '"' . $match . '"', $matches3);
$credential = ['login' => $matches3[1][0], 'password' => $matches3[1][1]];
$credentials[] = $credential;
}
var_dump($credentials);
在输出中你可以看到
array(3) {
[0]=>
array(2) {
["login"]=>
string(5) "admin"
["password"]=>
string(7) "support"
}
[1]=>
array(2) {
["login"]=>
string(5) "admin"
["password"]=>
string(8) "pass]word"
}
[2]=>
array(2) {
["login"]=>
string(5) "admin"
["password"]=>
string(6) "123321"
}
}
此代码适用于您问题中的其他示例。