问题标签 [ob-start]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何在执行 php 脚本之前将标头发送到客户端
如何在执行 php 脚本之前将标头发送到客户端?
我的脚本需要很长时间才能完成,而客户在此期间没有收到任何东西。
php - PHP代码的ob_start问题
好的,我无法掌握这个 ob_start 和 ob_end_clean 代码......
基本上,我试图在页面部分中输出 PHP 代码。
这是我的源代码:
现在,在模板函数中,我使用这个:
那么为什么我会收到此错误消息?
HTTP 错误 500(内部服务器错误):服务器尝试完成请求时遇到了意外情况。
我在这里做错了什么?$context['page_data']['body'] 有有效的 PHP 代码,很简单,echo 'Hello World';
但它给了我这个 500 Internal Server Error。为什么?
php - PHP ob_start 调用了两次,现在无法正确刷新
我已经编写了一个 MVC 框架,并且我正在使用 ob_start('error_handler') 来捕获致命错误。这很好用!
在 boot.php 中
错误记录功能:
同样,这可以很好地处理所有错误!我不使用任何刷新或错误类中的任何东西。
现在,我有一个使用 ob_start 的控制器,因为它是某个方法的相当长的运行时间,我希望向用户反馈正在发生的事情以及脚本的作用。我为此使用 ob_flush() 。
但是,在实现了这个 ob_start('error_logging'); ob_flush 似乎不起作用。他们等到整个脚本完成(大约需要 8 分钟)。
为什么?
我如何冲洗的一个例子是这样的:在控制器方法中:
在登录::执行:
每个 $this->debug->log() 调用都会刷新输出,如下所示:
知道为什么它不能正确冲洗吗?如果您需要查看更多代码,请告诉我,我会提供!
谢谢
::::::::解决方案::::::::::
我必须保存第一个缓冲区(error_logging),结束它,开始新的,做我的事情然后结束那个,再次启动第一个缓冲区并回显保存的输出。
为它上了一堂课:
用法:
引导.php
登录::执行():
完美运行!不支持多个嵌套的 ob_start,因为它只保存 1 个先前的输出。虽然可以修复,但现在不是必需的!
php - ob_start() 正在打印输出而不结束 ob_get_flush()
在下面的代码中我做错了什么吗?
Ob_start 应该正确缓冲输出,并且在刷新之前它不应该打印它。但它正在这样做
我得到输出“我很好”
php - 在没有 ob_start 的情况下输出后设置 cookie
我猜不是,但是有没有办法在 PHP 中设置一个 cookie 而不必放在ob_start()
输出的开头?
我的问题是,我正在开发一个类,其中需要设置一个 cookie。现在我不能告诉使用它的人“你必须在进行任何输出之前创建一个类的新实例”,因为那会很蹩脚。所以我能以某种方式把它拉下来吗?
php - 如何在 PHP 上实时重定向控制台输出?
如何在 PHP 上实时重定向控制台输出?
当我使用 ob_start() 函数时,它将输出存储在缓冲区中,并调用 ob_end_flush() 存储的输出。
但是..我想实时重定向输出..
请帮我
excel - codeigniter 导出到 excel 在本地主机上运行良好,服务器上出现错误
这是我的 export_to_excel 助手的代码:
我在本地主机和服务器上得到不同的结果。当我在 localhost 中运行代码时,它会毫无问题地输出正确的结果,但是当我在服务器上运行代码时,它会给出与 localhost 中相同的结果,但它会添加两行(excel 行),其中包含如下错误:
有什么解决办法吗?
这几乎是一个大型项目,这是我在本地和服务器之间看到的唯一区别。
php - ob_start 和 ob_gzhandler 函数的真正作用是什么
我知道 ob_start 打开输出缓冲,但我不完全理解它的含义。对我来说,这意味着它只是停止输出脚本数据。
这是真的?这种情况下浏览器是怎么输出数据的,到底要不要用ob_end_flush()关掉呢?
既然 ob_gzhandler 会压缩网页,那么浏览器是如何处理这些网页的呢?
我在代码中看到过 ob_start("gzhandler") ,因为 ob_gzhandler 压缩网页,所以 ob_start("gzhandler") 是什么意思,它是如何应用于这两个函数的?
所有帮助表示赞赏!
php - 是否可以在 ob_start 缓冲区中使用 php 标签?
我正在尝试制作复杂的模板库。问题是我将自己的语法和 php 保存在同一个文件中作为混合。
首先我的语法被解析并重新格式化。输出通常是 html + php 作为字符串。我不想制作缓存文件,而是使用包含“中间”模板的字符串。
在这个模板(包含 php 标签和 html 的字符串)上应该执行 php 操作。
MyComplexTemplate(我的语法 + php) =parse=> 模板(HTML+PHP) =exec php=> 结果(HTML)
对于 2. 我正在尝试将 ob_start() 与 echo 一起使用,但 php 标签内的所有内容都消失了。
例如:
结果应该是“<div>123</div>”。目前我只得到 div 标签。
这只是一个简单的例子。我的模板将包含 php 标签内的所有类型的 php 操作。
这种操作是否可能以某种方式进行?
更新
模板即:(template.php)
使用 MySyntaxParser 解析模板并在此之后执行 php,保持不变:
更新
我想像这里一样实现最精确的东西,但 require_once 应该以某种方式来自字符串:
解决方案
实际上解决方案在这个主题PHP: Equivalent of include using eval中。eval 必须与带有 php 标签的 pre 和 postpadded 一起使用。
你也应该看看这篇博文。
像这儿: