我正在对PHP中的反序列化字符串做一个特定的练习。实际上,这个字符串一旦被webapp序列化-反序列化,就会获取和连接两个字段'id‘和'uid’,然后将它们相加在一起形成一个4位数的字段。
示例:
O: 8: "userdata": 3: {s: 4: "role"; s: 5:"admin"; s: 2: "id"; i: 21; s: 3: "uid"; i: 32 ;}该webapp将给我的结果:欢迎管理2132
我需要创建一个增量数字循环,以便拥有id和uid字段2循环数字,即:
O: 8: "userdata": 3: {s: 4: "role"; s: 5: "admin"; s: 2: "id"; i: 00; s: 3: "uid"; i: 00 ;}
O: 8: "userdata": 3: {s: 4: "role"; s: 5: "admin"; s: 2: "id"; i: 00; s: 3: "uid"; i: 01 ;}依此类推,直到uid字段达到99,id字段开始添加+1并变为01,而uid字段必须始终执行相同的循环。
我是说这个:
O: 8: "userdata": 3: {s: 4: "role"; s: 5: "admin"; s: 2: "id"; i: 00; s: 3: "uid"; i: 99 ;}
O: 8: "userdata": 3: {s: 4: "role"; s: 5: "admin"; s: 2: "id"; i: 01; s: 3: "uid"; i: 00 ;}
O: 8: "userdata": 3: {s: 4: "role"; s: 5: "admin"; s: 2: "id"; i: 01; s: 3: "uid"; i: 01 ;}
O: 8: "userdata": 3: {s: 4: "role"; s: 5: "admin"; s: 2: "id"; i: 01; s: 3: "uid"; i: 02 ;}我创建了这个脚本,这样我就有了4个增量数字,但问题是,为了获得所需的结果,我不能在id字段中声明2位数字,而在uid字段中声明另外2位数字。
<?php
for($a=0; $a< 10; $a++)
{
for($b=0; $b< 10; $b++)
{
for($c=0; $c< 10; $c++) {
for($d=0; $d< 10; $d++) {
$y = ($a . $b. $c. $d);
$plain = 'O:8:"userdata":3:{s:4:"role";s:5:"admin";s:2:"id";i:'.$y.';s:3:"uid";i:'.$y.';}';
echo $plain. "\n";
}
}
}
}
?>这些for循环的输出只不过是:
O:8:"userdata":3{s:4:"role";s:5:"admin";s:2:"id";i:0000;s:3:"uid";i:0000;}
O:8:"userdata":3{s:4:"role";s:5:"admin";s:2:"id";i:0001;s:3:"uid";i:0001;}
O:8:"userdata":3{s:4:"role";s:5:"admin";s:2:"id";i:0002;s:3:"uid";i:0002;}
O:8:"userdata":3{s:4:"role";s:5:"admin";s:2:"id";i:0003;s:3:"uid";i:0003;}
O:8:"userdata":3{s:4:"role";s:5:"admin";s:2:"id";i:0004;s:3:"uid";i:0004;}发布于 2022-09-09 18:05:09
为什么你不直接数到从0000到9999,分裂成id和uid,每个2位数?
for ($i = 0; $i < 1e4; $i++) {
$str = "0000$i";
$len = strlen($str);
$id = substr($str, $len-4, 2);
$uid = substr($str, $len-2, 2);
echo "$id $uid<br>";
}发布于 2022-09-09 20:13:28
谢谢你@IT高盛我解决了:
<?php
for ($i = 0; $i < 1e4; $i++) {
$str = "0000$i";
$len = strlen($str);
$id = substr($str, $len-4, 2);
$uid = substr($str, $len-2, 2);
$string = 'O:8:"userdata":3:{s:4:"role";s:5:"admin";s:2:"id";i:'.$id.';s:3:"uid";i:'.$uid.';}';
echo $string."\n";
}
?>https://stackoverflow.com/questions/73665781
复制相似问题