易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP实现’服务器推’(flush函数使用)

最近一直在做自己的图书站,分别使用过杰奇和读吧两套不同的系统,对于这两套系统也是又爱又恨,爱的是他们的功能强大,恨他们都同属没有开源精神的产物。呵呵,作为一名穷程序员,俺可以理解作者的苦衷,这里就不批判了。
年假期间,无事可做,翻看自己以前的采集代码,发现很多可以优化和提升的地方,就简单做了下优化,其中也使用了用户体验更加优秀的服务器推技术,这里简单的介绍下核心的函数:flush。
先看看手册中的解释:
flush — 刷新输出缓冲;
说明:
void flush ( void )
刷新PHP程序的缓冲,而不论PHP执行在何种情况下(CGI ,web服务器等等)。该函数将当前为止程序的所有输出发送到用户的浏览器。 flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 个别web服务器程序,特别是Win32下的web服务器程序,在发送结果到浏览器之前,仍然会缓存脚本的输出,直到程序结束为止。 有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。 甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在接受到 标记之前,不会显示出整个表格。 一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。 根据上面的解释,我们简单的使用flush函数来实现一个例子: 上面的这段代码,应该隔一秒钟输出一次$i。但是实际中却不一定是这样。有可能是等了10秒钟后,所有的输出同时呈现出来,后面的输出开始正常。PHP手册中对此也做出了解释,就是各种缓存在起作用,那我们该如何解决呢?!
答案来了:^_^
一、 二、 写到这里,发现一个哥们的文章,比我写的更加透彻,在次引用:
剖析PHP中的输出缓冲
最近想整理下自己的代码,搞个专门的站点放着,暂定名为:毛毛虫的实验室
大家敬请期待,肯定都是好玩的东西,呵呵!


相关文档:

php中header()函数使用说明

eader()函数使用说明:  
 
一、作用:  
~~~~~~~~~  
       PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了,可参照http://www.w3.org/Protocols/rfc2616/rfc2616。  
  & ......

PHP开发网站代码编写规范

一、 变量命名
a) 所有字母都使用小写
b) 首字母根据变量值类型指定
i. 整数i
ii. 浮点数f
iii. 字符串s
iv. 布尔值b
v. 数组a
vi. 对象o
vii. 资源r
viii. 混合类型m
c) 使用’_’作为每一个词的分界
例如:
$i_age_max = 10;
$f_price = 22.5;
$s_name =‘harry’;
$b_flag = true; ......

php 类的使用

用户定义的类,也是学好 PHP 所必备的条件之一。
而 PHP 的类,和其它的面向对象语言比较起来,还算蛮单纯的。
PHP 只有类别 (class)、方法 (method)、属性、以及单一继承 (extensions) 等。
对不习惯使用 C++、Java、Delphi 等面向对象语言来开发程序的用户,不妨先阅读一下有关面向对象概念的书,相信可以带来许多的收 ......

自己写的一个PHP分页类

先给大家贴一个实例
test.php
<?php
//包含seppage类文件
require 'seppage.class.php';
//当前页码
$pagenow=2;
//页面总数
$pageall=10;
/*
*需要分页的URL地址,可以URL中可以自由使用?号或者&号,程序会自动识别
*此参数和$modurl参数设置一项即可,若两项都有,则按$modurl为准
*/
$url='http://l ......

php伪造来路页面

<?php
$host = "www.abc.com"; //你要访问的域名
$target = "/test.asp"; //你要访问的页面地址
$referer = "http://www.abcdefg.com/abc.html"; //伪造来路页面
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp){
echo "$errstr($errno)<br />\n";
} ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号