我有问题,当URL中的POST信息没有编码时,一切都很好,并且我可以将foreach用于所有信息,因为我将其作为数组获取
但是当使用GET进行解码时,信息会从数组转换为字符串,并且无法再使用foreach了(我尝试再次将其编码为json,但失败)。
我在这样的URL中具有base64值
http://www.test.com/index.php?info=dXNlcm5hbWU9PmJyb29rcwpjb2xvcj0+Ymx1ZQp1cmw9Pmh0dHA6Ly93d3cudGVzdC5jb20vNDE0Mg==
我使用$info = base64_decode($_GET['info']);
进行获取和解码
我想像这样echo <li>$info_key is $info_value</li>
注意:解码时,您会看到我在键和值之间使用=>,并对每个数组使用返回行,也许我可以使用PHP_EOL进行拆分或收集
另一个注意事项:我不知道将从url获得多少值,因为我需要使用foreach来循环所有收集的值
谢谢stackoverflow社区✌
答案 0 :(得分:1)
解码后的字符串如下所示:
username=>brooks
color=>blue
url=>http://www.test.com/4142
foreach
用于循环遍历可迭代对象,因此您需要将其解析为数组。
<?php
$str = base64_decode('dXNlcm5hbWU9PmJyb29rcwpjb2xvcj0+Ymx1ZQp1cmw9Pmh0dHA6Ly93d3cudGVzdC5jb20vNDE0Mg==');
$lines = explode(PHP_EOL, $str);
foreach ($lines as $line) {
$line = explode('=>', $line);
echo '<li>'.$line[0].' is '.$line[1].'</li>'.PHP_EOL;
}
<li>username is brooks</li>
<li>color is blue</li>
<li>url is http://www.test.com/4142</li>
尽管您应该避免执行任何操作并将它们作为参数传递。