php中 ob_start等函数截取标准输出的方法

yipeiwu_com6年前PHP代码库

最近在用PHP在cli下开发一款软件,遇到了这样的问题。我想将PHP脚本中输出的东西收集在一起,于是使用了ob_start和ob_end_flush这两个函数,确实有达到收集输出内容的作用,但同时也将这些打印到了控制台界面中。我想问的是有没有办法,阻止PHP像控制台输出信息。该软件原则上是不允许向控制台打印任何东西的。

php-cli本身脱离web服务器执行脚本,我不知道你现在获取到的数据是怎么拿到的?如果你不是通过cli执行php程序返回的值拿到的,那么可以使用ob_get_clean()

他会获取缓存内容后清除缓存区,这样可以达到你说的不显示到显示界面的效果

当然你也可以获取到缓冲区内容,然后清空(控制不要输出到控制台),然后将内容falsh到web服务器上做处理

按照以上方法已经搞定了。之前有用过这个系列的函数,太久不用,有些忘了。

现在在做的是一个基于PHP的多进程HTTP动态服务器。毕业论文,试验品而已,没什么实用性。

php-cgi程序执行结果是标准输入输出,所以只能用获取标准输入输出的方式截取输出结果,管道应该也可以,不过我不会

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

浅谈php扩展imagick

PHP建图通常都用GD库,因为是内置的不需要在服务器上额外安装插件,所以用起来比较省心,但是如果你的程序主要的功能就是处理图像,那麼就不建议用GD了,因为GD不但低效能而且能力也比较弱,...

PHP基于curl实现模拟微信浏览器打开微信链接的方法示例

本文实例讲述了PHP基于curl实现模拟微信浏览器打开微信链接的方法。分享给大家供大家参考,具体如下: 网络上没有可以直接打开微信的浏览器 但是我们可以模拟浏览器 微信浏览器的HTTP_...

PHP简单实现断点续传下载的方法

本文实例讲述了PHP实现断点续传下载的方法。分享给大家供大家参考。具体如下: $fname = 'http://XXXX/MMLDZG.mp3'; $fp = fopen($fnam...

Laravel实现autoload方法详解

Laravel实现autoload方法详解

用了一阵Laravel后发现很少有include和require,觉得有点奇怪,思考Laravel是怎么完成文件导入的。 其实Laravel依旧还是用include或者require的,...

使用ETags减少Web应用带宽和负载第1/2页

介绍 最近,大众对于REST风格应用架构表现出强烈兴趣,这表明Web的优雅设计开始受到人们的注意。现在,我们逐渐理解了“3W架构(Architecture of the World W...