问题确实在标题中 - 我有这个foreach
循环,它似乎在我的数组上迭代两次。
ob_start();
$array = str_split(strtolower($_GET['text']));
foreach ($array as $char) {
error_log($_GET['text'] . ', ' . sizeof($array) . ', ' . $char);
}
$result = ob_get_contents();
我发现上面的代码在传入 URL 时会生成以下日志,如下所示: index.php?text=Hi
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, h
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, i
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, h
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, i
调试显示数组只有 2 长,所以我真的不确定它可能是什么。谢谢!
经过更多的调试,我发现了以下内容:
if (!isset($_GET['text'])) {
header('HTTP/1.0 404 Not Found');
die();
}
echo uniqid() . '</br>';
//ob_start();
$total = 0;
$array = str_split(strtolower($_GET['text']));
foreach ($array as $char) {
echo $_GET['text'] . ', ' . sizeof($array) . ', ' . $char . '</br>';
}
//$result = ob_get_contents();
echo $result;
产生这个:
5bce311d3d6bd
Hi, 2, h
Hi, 2, i
但是取消注释两条注释掉的行,给了我这个:
5bce313b9f29d
Hi, 2, h
Hi, 2, i
Hi, 2, h
Hi, 2, i
我想我可能需要更多地了解ob_...
功能?
以下代码似乎是一致且可靠的:
if (!isset($_GET['text'])) {
header('HTTP/1.0 404 Not Found');
die();
}
echo uniqid() . '</br>';
ob_start();
$total = 0;
$array = str_split(strtolower($_GET['text']));
foreach ($array as $char) {
echo $_GET['text'] . ', ' . sizeof($array) . ', ' . $char . '</br>';
}
ob_flush();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句