php中 ob

   这篇文章主要介绍了php中 ob_start等函数截取标准输出的方法的相关资料,需要的朋友可以参考下

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

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

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

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

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

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

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

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

时间: 2024-10-02 03:23:30

php中 ob的相关文章

php中ob函数缓冲机制深入理解_php实例

下面就php中ob函数缓冲机制通过文字说明加代码分析的形式给大家展示如下: 对于一个刚刚入门的php程序员来说,php缓冲区是几乎透明的.在他们心目中,一个echo print_r 函数,数据便会'嗖'的一声飞到浏览器上,显示出来.我也一直如此单纯地认为. 其实,在技术的世界里,向来都是由简单到复杂,也许那些技术开发者开始单纯如你我,但是面对残酷的现实,不得不调整策略,以期提高机器运行效率,最后想到了那些让我们赞叹的idea. 说到缓冲,也就是buffer,这里必须要和缓存做一下比较,单纯地比较

php output_buffering 缓存使用

buffer是一个内存地址空间,linux系统默认大小一般为4096(4kb).主要用于存储速度不同步的设备或优先级不同的设备之间传递数据的区域. 通过buffer可以使进程之间的相互等待变少. 例如,当你打开一个文本编辑器,输入一个字符时,系统并不会立即写入磁盘.而是存储在buffer中,当写满一个buffer时,才会把buffer的内容写入磁盘. 当然也可以使用flush强制将buffer的数据写入磁盘. 在php中,例如 echo,print,输出并不会立即通过tcp传递给浏览器输出.而是

[C#]中abstract类和interface概念和区别讲解

  abstract(抽象)类和interface(接口)是面向对象编程中两个概念,但是学了很多年编程的程序员有时对这两个概念的区分仍然不是很清楚.下面就讲解abstract类和interface的概念和区别. abstract(抽象)类 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法. 抽象类不能被实例化. 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类. 具体派生类必须覆盖基类的抽象方法. 抽象派生类可以覆盖基类的抽象方法,也可以不

用PHP控制用户的浏览器--ob*函数的使用

函数|控制|浏览器 用PHP控制用户的浏览器--ob*函数的使用 Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. <?php ob_start();

JavaMail发送邮件中主题乱码的解决方法

发送邮件|解决 很多朋友都使用过JavaMail进行邮件发送,在邮件正文中的乱码容易解决.但邮件主题的乱码无论怎样转码总是显示一堆乱码.到底应该怎么处理呢? JavaMail中的邮件主题需要进行BASE64编码,格式形如:=?GB2312?B?xPq1xMPcwuvS0b6t1tjWw6Osx+u+ob/stcfCvKOssqLQ3rjEw9zC66Oh?=所以,直接使用msg.setSubject("中文主题"),或者msg.setSubject("中文主题".g

ASP项目中的通用条件查询模块

一.提出问题:    在大型的ASP项目中,都涉及到了条件查询这一功能.用户要求能够针对特定的字段进行查询.对于有些数据,是从多个表取出来的,因此也要能对多个表进行查询.    一般的话,大多数的做法就是每个程序都做一个查询功能,因为每个查询的表都不同,涉及的字段也不同.但是,如果在大型的ASP项目中这么做的话,不仅增加了工作量.影响开发进度,而且不能使系统模块化.代码复用,增加了系统维护难度.因此,我们有必要使条件查询模块化. 二.解决思路:    我们设计条件查询的功能为:    1.选择查

Hadoop 2.x(YARN)中安装和配置LZO

今天尝试在Hadoop 2.x(YARN)上安装和配置LZO,遇到了很多坑,网上的资料都是基于Hadoop 1.x的,基本没有对于Hadoop 2.x上应用LZO,我在这边记录整个安装配置过程 1. 安装LZO 下载lzo 2.06版本,编译64位版本,同步到集群中 wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz export CFLAGS=-m64 ./configure -enable-shared

在AutoCAD中快速精确多等分角

相信朋友们都知道,在尺规做图中想要三等分一个任意角是不可能的,但是有了CAD之后,我们可以很方便的把一个任意角三等分.而实际上,有了CAD的帮助,在理论上讲,我们可以把任意角做任意等分,以满足我们的工作需要.下面笔者就提供两个方法供大家参考. 一.定数等分角法 如图,我们要把任意的∠AOB三等分,这里笔者为了演示的方便,特意设置AO=BO. 输入圆弧命令ARC做以O为圆心,A.B为两端点的一段圆弧,要注意在CAD中画圆弧选择起点与终点是逆时针方向选择.当然,也可以用画圆命令画一个完整的圆,再用剪

Java中泛型的理解与等价实现

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个 参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引入泛型的好处是安全简单. 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的"任意化 ","任意化"带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实 际参数类型可以预知的情况下进行的.对于强制类型转换错误的情况,编