当前位置: 首页 > news >正文

湖南智能网站建设哪家好常熟公司做网站

湖南智能网站建设哪家好,常熟公司做网站,网站开发简历模板,展示型网站建设的建议FROM http://www.phpchina.com/html/28/1628-3870.html Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用#xff0c;特别是对于#xff1a;当你想在数据已经输出后#xff0c;再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的… FROM http://www.phpchina.com/html/28/1628-3870.html Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用特别是对于当你想在数据已经输出后再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。我们先举一个简单的例子让大家对Output Control有一个大致的印象Example 1.CODE?phpob_start(); //打开缓冲区echo \Hellon\; //输出header(location:index.php); //把浏览器重定向到index.phpob_end_flush();//输出全部内容到浏览器?所有对header()函数有了解的人都知道这个函数会发送一段文件头给浏览器但是如果在使用这个函数之前已经有了任何输出包括空输出比如空格回车和换行就会提示出错。如果我们去掉第一行的ob_start()再执行此程序我们会发现得到了一条错误提示Header had all ready send by但是加上ob_start就不会提示出错原因是当打开了缓冲区echo后面的字符不会输出到浏览器而是保留在服务器直到你使用flush或者ob_end_flush才会输出所以并不会有任何文件头输出的错误一、 相关函数简介1、Flush刷新缓冲区的内容输出。函数格式flush()说明这个函数经常使用效率很高。2、ob_start 打开输出缓冲区函数格式void ob_start(void)说明当缓冲区激活时所有来自PHP程序的非文件头信息均不会发送而是保存在内部缓冲区。为了输出缓冲区的内容可以使用ob_end_flush()或flush()输出缓冲区的内容。3 、ob_get_contents 返回内部缓冲区的内容。使用方法string ob_get_contents(void)说明这个函数会返回当前缓冲区中的内容如果输出缓冲区没有激活则返回 FALSE 。4、ob_get_length返回内部缓冲区的长度。使用方法int ob_get_length(void)说明这个函数会返回当前缓冲区中的长度和ob_get_contents一样如果输出缓冲区没有激活。则返回 FALSE。5、ob_end_flush 发送内部缓冲区的内容到浏览器并且关闭输出缓冲区。使用方法void ob_end_flush(void)说明这个函数发送输出缓冲区的内容如果有的话。6、ob_end_clean删除内部缓冲区的内容并且关闭内部缓冲区使用方法void ob_end_clean(void)说明这个函数不会输出内部缓冲区的内容而是把它删除7、ob_implicit_flush打开或关闭绝对刷新使用方法void ob_implicit_flush ([int flag])说明使用过Perl的人都知道$|x的意义这个字符串可以打开/关闭缓冲区而ob_implicit_flush函数也和那个一样默认为关闭缓冲区打开绝对输出后每个脚本输出都直接发送到浏览器不再需要调用 flush()二、深入了解1. 关于Flush函数这个函数在PHP3中就出现了是一个效率很高的函数他有一个非常有用的功能就是刷新browser的cache.我们举一个运行效果非常明显的例子来说明flush.Example 2.CODE?phpfor($i 1; $i 300; $i ) print( );// 这一句话非常关键cache的结构使得它的内容只有达到一定的大小才能从浏览器里输出// 换言之如果cache的内容不达到一定的大小它是不会在程序执行完毕前输出的。经// 过测试我发现这个大小的底限是256个字符长。这意味着cache以后接收的内容都会// 源源不断的被发送出去。For($j 1; $j 20; $j) {echo $j.;flush(); //这一部会使cache新增的内容被挤出去显示到浏览器上sleep(1); //让程序睡一秒钟会让你把效果看得更清楚}?具体效果你可以到这里看看http://www.php2000.com/~uchinaboy/out.phpPHP2000的最新的PHP聊天室就是用的这个技术可惜的是源代码未公开 L注如果在程序的首部加入ob_implicit_flush()打开绝对刷新,就可以在程序中不再使用flush(),这样做的好处是提高效率2. 关于ob系列函数我想先引用我的好朋友y10k的一个例子Example 3.比如你用得到服务器和客户端的设置信息但是这个信息会因为客户端的不同而不同如果想要保存phpinfo()函数的输出怎么办呢在没有缓冲区控制之前可以说一点办法也没有但是有了缓冲区的控制我们可以轻松的解决CODE?phpob_start(); //打开缓冲区phpinfo(); //使用phpinfo函数$infoob_get_contents(); //得到缓冲区的内容并且赋值给$info$filefopen(\info.txt\,\w\); //打开文件info.txtfwrite($file,$info); //写入信息到info.txtfclose($file); //关闭文件info.txt?用以上的方法就可以把不同用户的phpinfo信息保存下来这在以前恐怕没有办法办到其实上面就是将一些过程转化为函数的方法或许有人会问难道就这个样子吗还有没有其他用途当然有了比如笔者论坛的PHP 语法加亮显示就和这个有关PHP默认的语法加亮显示函数会直接输出不能保存结果如果在每次调用都显示恐怕会很浪费CPU笔者的论坛就把语法加亮函数显示的结果用控制缓冲区的方法保留了大家如果感兴趣的话可以来看看http://www.zphp.com/bbs/可能现在大家对ob_start()的功能有了一定的了解上面的一个例子看似简单但实际上已经掌握了使用ob_start()的要点。1.使用ob_start打开browser的cache这样可以保证cache的内容在你调用flush(),ob_end_flush()或程序执行完毕之前不会被输出。2.现在的你应该知道你所拥有的优势可以在任何输出内容后面使用header,setcookie以及session这是ob_start一个很大的特点也可以使用ob_start的参数在cache被写入后然后自动运行命令比如ob_start(\ob_gzhandler\)而我们最常用的做法是用ob_get_contents()得到cache中的内容然后再进行处理……3.当处理完毕后我们可以使用各种方法输出flush(),ob_end_flush(),以及等到程序执行完毕后的自动输出。当然如果你用的是ob_get_contents()那么就要你自己控制输出方式了。来让我们看看能用ob系列函数做些什么……一、 静态模版技术简介所谓静态模版技术就是通过某种方式使得用户在client端得到的是由PHP产生的html页面。如果这个html页面不会再被更新那么当另外的用户再次浏览此页面时程序将不会再调用PHP以及相关的数据库对于某些信息量比较大的网站例如sina,163,sohu。类似这种的技术带来的好处是非常巨大的。我所知道的实现静态输出的有两种办法1.通过y10k修改的phplib的一个叫template.inc.php类实现。2.使用ob系列函数实现。对于第一种方法因为不是这篇文章所要研究的问题所以不再赘述。我们现在来看一看第二种方法的具体实现Example 4.CODE?phpob_start();//打开缓冲区?php页面的全部输出?$content ob_get_contents();//取得php页面输出的全部内容$fp fopen(output00001.html, w); //创建一个文件并打开准备写入fwrite($fp, $content); //把php页面的内容全部写入output00001.html然后……fclose($fp);?这样所谓的静态模版就很容易的被实现了……二、 捕捉输出以上的Example 4.是一种最简单的情况你还可以在写入前对$content进行操作……你可以设法捕捉一些关键字然后去对它进行再处理比如Example 3.所述的PHP语法高亮显示。个人认为这个功能是此函数最大的精华所在它可以解决各种各样的问题但需要你有足够的想象力……Example 5.CODE?Function run_code($code) {If($code) {ob_start();eval($code);$contents ob_get_contents();ob_end_clean();}else {echo 错误没有输出;exit();}return $contents;}以上这个例子的用途不是很大不过很典型$code的本身就是一个含有变量的输出页面而这个例子用eval把$code中的变量替换然后对输出结果再进行输出捕捉再一次的进行处理……Example 6. 加快传输CODE?/*** Title.........: PHP4 HTTP Compression Speeds up the Web** Version.......: 1.20** Author........: catoc [email]catoc163.net[/email]** Filename......: gzdoc.php** Last changed..: 18/10/2000** Requirments...: PHP4 4.0.1** PHP was configured with --with-zlib[DIR]** Notes.........: Dynamic Content Acceleration compresses** the data transmission data on the fly** code by sun jin hu (catoc) [email]catoc163.net[/email]** Most newer browsers since 1998/1999 have** been equipped to support the HTTP 1.1** standard known as \content-encoding.\** Essentially the browser indicates to the** server that it can accept \content encoding\** and if the server is capable it will then** compress the data and transmit it. The** browser decompresses it and then renders** the page.**** Modified by John Lim ([email]jlimnatsoft.com.my[/email])** based on ideas by Sandy McArthur, Jr** Usage........:** No space before the beginning of the first \?\ tag.** ------------Start of file----------** |?** | include(\gzdoc.php\);** |? ** |HTML** |... the page ...** |/HTML** |?** | gzdocout();** |? ** -------------End of file-----------*/ob_start();ob_implicit_flush(0);function CheckCanGzip(){global $HTTP_ACCEPT_ENCODING;if (headers_sent() || connection_timeout() || connection_aborted()){return 0;}if (strpos($HTTP_ACCEPT_ENCODING, \x-gzip\) ! false) return \x-gzip\;if (strpos($HTTP_ACCEPT_ENCODING,\gzip\) ! false) return \gzip\;return 0;}/* $level compression level 0-9, 0none, 9max */function GzDocOut($level1,$debug0){$ENCODING CheckCanGzip();if ($ENCODING){print \n!-- Use compress $ENCODING --n\;$Contents ob_get_contents();ob_end_clean();if ($debug){$s \pNot compress length: \.strlen($Contents);$s . \Compressed length: \.strlen(gzcompress($Contents,$level));$Contents . $s;}header(\Content-Encoding: $ENCODING\);print \x1fx8bx08x00x00x00x00x00\;$Size strlen($Contents);$Crc crc32($Contents);$Contents gzcompress($Contents,$level);$Contents substr($Contents, 0, strlen($Contents) - 4);print $Contents;print pack(\V\,$Crc);print pack(\V\,$Size);exit;}else{ob_end_flush();exit;}}?这是catoc的一段很早以前的代码是在weblogs.com看到的他利用了zlib的函数对传输的内容进行了压缩测试表明对于10k以上的页面会产生效果而且页面越大效果越明显……     代码     ob_start();     $sql  SELECT * FROM table ORDER BY theme_id asc;    $rst  $db-query($sql);    while($row  $db-fetch_array($rst))    {        $theme_id  $row[theme_id];        $fromUrl  SOFT_HTMLURL.marryphoto.php?handlethemetheme_id.$theme_id;        $sendUrl  ../html_.$theme_id..html;        readfile($fromUrl);           $htmltext  ob_get_contents();        $htmlfile  fopen($sendUrl,w);           fwrite($htmlfile,$htmltext);           ob_clean();    }    $fromUrl  SOFT_HTMLURL.html.php;    $sendUrl  ../html.html;    readfile($fromUrl);       $htmltext  ob_get_contents();    $htmlfile  fopen($sendUrl,w);       fwrite($htmlfile,$htmltext);       ob_clean();     转载于:https://www.cnblogs.com/Athrun/archive/2010/05/23/1742121.html
http://www.sadfv.cn/news/199564/

相关文章:

  • 合肥建筑网站大全成都高端网站建设哪家好
  • 长春网络建站企业网站建站费用
  • wordpress软件门户主题网站建设优化公司哪家好
  • 网站开发设计实训 报告合肥网站建设方案
  • 宝安做网站哪家好揭阳市seo上词外包
  • 广西南宁网站策划义乌seo优化公司
  • 有做财经 直播的网站吗做跨境电商要什么费用
  • 如何管理建好的网站阿里云云虚拟主机
  • 做食品研发都有哪些网站wordpress 不同page
  • 网站建设功能文档营销技巧和营销方法培训
  • 怎么做打赏看视频的网站设计师网址导航 优设
  • 网站备案要钱吗互联网建筑设计平台
  • 网站开发是怎么开发的建电商网站
  • 做网站预付款是多少信息服务平台有哪些
  • 做的最好的相亲网站有哪些2008系统怎么做网站
  • 有那些专门做职业统计的网站自己做网站 赚钱
  • 公众号运营外包价格seo的培训网站哪里好
  • 建设游戏运营网站开展工作内容wordpress禁止图片
  • 沈阳营销型网站制作软件开发者工具
  • 网站开发 后端顺义网站开发
  • 做网站与数据库的关系做外贸进国外网站
  • 大学做机器人比赛的网站论坛网站充值支付宝收款怎么做
  • 做网络销售都做什么网站美图秀秀网页版
  • 建网站怎样往网站传视频eclipce做网站
  • 重庆模板网站建设彩票网站可以做哪些活动
  • 开发国外优惠卷网站如何做wordpress客户端连接不上
  • 台州网站建设方案优化杭州企业宣传画册制作公司
  • 珠宝钻石网站建站北京的网站设计公司
  • 汽车城网站建设方案建立网站 数据分析
  • 兰溪市住房和城乡建设局网站网站 方案