为了构建 url 查询,我需要将数组的一个值(键)与另一个数组的所有值(值)组合在一起。每个组合键 => 值都需要添加到数组中。
这里的问题是我可以在两个 foreach 语句中组合两个数组的值,但它为每个实例创建一个新数组。
更新不可能有重复,所以我的初始输出是正确的。
$array1 数组(
[0] => 音乐
[1] => 产品
)
$array2 数组(
[0] => '));等待延迟'0:0:时间'--1
[1] => '[TAB] 或 [TAB] 睡眠(时间)='
)
public static function create_combined_array($array1, $array2)
{
$newArray = array();
foreach ($array1 as $key){
//key = [music]
foreach ($array2 as $value) {
//one of the values is = '));waitfor delay '0:0:__TIME__'--1
array_push($newArray, [$key => $value]);
}
}
return $newArray;
}
执行
$query_array = Utils::create_combined_array($params, $payload_lines);
print_r($query_array);
$query = http_build_query($query_array);
$this->url = $baseUrl . '?' . $query;
构建查询输出
protocol://localhost:8000?music='));waitfor delay '0:0: TIME '--1
样本输出
[54] => Array
(
[music] => ));waitfor delay '0:0:__TIME__'--[LF]1
)
[55] => Array
(
[music] => '));waitfor delay '0:0:__TIME__'--1
)
[56] => Array
(
[music] => '));waitfor delay '0:0:__TIME__'--[LF]1
)
[57] => Array
(
[music] => "));waitfor delay '0:0:__TIME__'--1
)
我想要实现的目标在 PHP 中是不可能的。
重复示例
Array(
[music] => "));waitfor delay '0:0:__TIME__'--1
[music] => '/**/or/**/benchmark(10000000,MD5(1))#1
)
使用下面的代码:
public static function create_combined_array($array1, $array2)
{
$newArray = array();
foreach ($array1 as $key){
foreach ($array2 as $i => $value) {
$newArray[$i][$key] = $value;
}
}
return $newArray;
}
关键线是$newArray[$i][$key] = $value;
。它将一个数组附加到$newArray
at$i
索引,该索引是您的第二个数组的索引$array2
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句