php - 脚本执行时打印
问题描述
我有这个代码片段:
foreach ($data as $key => $value) {
$result = $this->_restFetch($value);
$mode[$key] = $result[0]->extract;
}
只是一些在for
循环中运行的基本代码,向某个 API 发送请求。完成脚本需要时间,所以我想在脚本执行时向用户输出一些文本,如下所示:
foreach ($data as $key => $value) {
print "Started importing $value \r\n";
$result = $this->_restFetch($value);
$mode[$key] = $result[0]->extract;
print "Finished importing $value \r\n";
}
我尝试了各种使用ob_
命令的方法,但都没有奏效。有任何想法吗?
解决方案
在每个打印行之后,您必须放置flush(),因此内容会立即打印出来。请记住,浏览器需要显示一些最小数据(大约 0.5Kb)。我把 ob_flush() 和 flush() 都放了,因为这样你就可以确定输出会显示出来。有关 flush() 和 ob_flush() 的更多信息,您可以在本主题PHP 缓冲区 ob_flush() 与 flush()中看到。
usleep 函数可用于延迟代码执行以进行调试。
foreach ($data as $key => $value) {
print "Started importing $value \r\n";
usleep(3600); // if you are debugging, otherwise just comment this part
ob_flush();
flush();
$result = $this->_restFetch($value);
$mode[$key] = $result[0]->extract;
print "Finished importing $value \r\n";
usleep(3600); // if you are debugging, otherwise just comment this part
ob_flush();
flush();
}
推荐阅读
- assembly - 在 MASM 中复制字符串并使用间接寻址进行反向输出
- javascript - 用户选择另一个字段后是否可以隐藏特定字段?
- ssl - 无法建立到 PostgreSQL 的 SSL 连接
- java - Spring Boot + Vue.js:运行打包的应用程序时出现白标签错误
- python - Python将字符串数组转换为字节数组
- django - 找不到页面 (404) 请求方法:POST 请求 URL:http://127.0.0.1:8000/accounts/signup/index.html
- validation - Appian 字段验证擦除字段值
- java - 为什么我收到错误 WhiteLabel 错误页面
- python - 使用 pandas Dataframe to_string() 方法时出现 MemoryError
- kubernetes - 删除后 Kubernetes 重新附加到相同的持久卷