|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。1.运转时设置(php.ini)
output_buffering=Off
display_errors=On
2.函数申明
(1)boolob_start([callback$output_callback[,int$chunk_size[,bool$erase]]])
此函数将翻开输入缓冲。当输入缓冲是活泼的时分,没有输入能从剧本送出(除http标头外),相反输入的内容被存储在外部缓冲区中。外部缓冲区的内容能够用ob_get_contents()函数复制到一个字符串变量中。想要输入存储在外部缓冲区中的内容,可使用ob_end_flush()函数。别的,利用ob_end_clean()函数会寂静抛弃失落缓冲区的内容。
01<?php02functioncallback($buffer){03//replacealltheappleswithoranges04return(str_replace("apples","oranges",$buffer));05}06ob_start("callback");07?>08<html>09<body>10<p>Itslikecomparingapplestooranges.</p>11</body>12</html>13<?php14ob_end_flush();15?>1617输入:18<html>19<body>20<p>Itslikecomparingorangestooranges.</p>21</body>22</html>
(2)stringob_get_contents(void)
只是失掉输入缓冲区的内容,但不扫除它,大概假如输入缓冲区有效将前往FALSE。
01<?php02ob_start();0304echo"Hello";05$out1=ob_get_contents();0607echo"World";08$out2=ob_get_contents();0910ob_end_clean();11var_dump($out1,$out2);12?>13输入:string(6)"Hello"string(11)"HelloWorld"1415<?php16//Level017ob_start();18echo"Hello";1920//Level121ob_start();22echo"HelloWorld";23$out2=ob_get_contents();24ob_end_clean();2526//Backtolevel027echo"Galaxy";28$out1=ob_get_contents();29ob_end_clean();3031//Justoutput32var_dump($out1,$out2);33?>34输入:string(12)"HelloGalaxy"string(11)"HelloWorld"
(3)intob_get_length(void)
前往输入缓冲区内容的长度;大概前往FALSE——假如没有起感化的缓冲区。
1<?php2ob_start();3echo"Hello";4$len1=ob_get_length();5echo$len1;6?>7输入:6
(4)intob_get_level(void)
前往嵌套的输入缓冲处置程序的级别;大概是,假如输入缓冲区不起感化,前往零。
01<?php02echoob_get_level();//-->103?>04<?php05ob_end_clean();06echoob_get_level();//-->007?>08<?php09echoob_get_level();//110ob_start();11echo"Hello";12echoob_get_level();//21314ob_start();15echo"HelloWorld";16echoob_get_level();//317$out2=ob_get_contents();18ob_end_clean();1920echo"Galaxy";21$out1=ob_get_contents();22ob_end_clean();23echoob_get_level();//12425var_dump($out1,$out2);26?>27输入:11string(13)"Hello2Galaxy"string(12)"HelloWorld3"
(5)stringob_get_clean(void)
失掉以后缓冲区的内容并删除以后输入缓冲区。假如输入缓冲区不是活泼的,即前往FALSE。
ob_get_clean()本色上是一同实行了ob_get_contents()和ob_end_clean()。
01<?php02ob_start();03echo"1";04$content=ob_get_clean();0506ob_start();//ThisisNECESSARYforthenextob_get_clean()toworkasintended.07echo"2";08$content.=ob_get_clean();0910echo$content;11?>12输入:12
(6)boolob_end_clean(void)
此函数抛弃最顶层输入缓冲区的内容并封闭这个缓冲区。假如想要进一步处置缓冲区的内容,必需在ob_end_clean()之前挪用ob_get_contents(),由于当挪用ob_end_clean()时缓冲区内容将被抛弃。
前往值:乐成时前往TRUE,大概在失利时前往FALSE。毛病的缘故原由起首是,在挪用时没有一个起感化的缓冲区,大概是由于某些缘故原由缓冲区不克不及被删除(大概对特别缓冲区而言)。
毛病/非常:假如函数失利了,将激发一个E_NOTICE非常。
(7)stringob_get_flush(void)
前往输入缓冲区的内容,并封闭输入缓冲区;假如没有起感化的输入缓冲区,前往FALSE。
01<?php02//usingoutput_buffering=On03print_r(ob_list_handlers());0405//savebufferinafile06$buffer=ob_get_flush();07file_put_contents(buffer.txt,$buffer);0809print_r(ob_list_handlers());10?><span>输入:</span><spanstyle="font-size:9pt;line-height:1.5;">Array</span><span>(</span><span>[0]=>defaultoutputhandler</span><span>)</span><span>Array</span><span>(</span><span>)</span>
(8)boolob_end_flush(void)
这个函数将送出最顶层缓冲区的内容(假如里边有内容的话),并封闭缓冲区。假如想进一步处置缓冲区中的内容,必需在ob_end_flush()之前挪用ob_get_contents(),由于在挪用ob_end_flush()后缓冲区内容被抛弃。
注重:这个函数与ob_get_flush()类似,分歧的是ob_get_flush()会把缓冲区中的内容作为字符串前往。
前往值:乐成时前往TRUE,大概在失利时前往FALSE.毛病的缘故原由起首是,在挪用时没有一个起感化的缓冲区,大概是由于某些缘故原由缓冲区不克不及被删除(大概对特别缓冲区而言)。
毛病/非常:假如函数失利了,将激发一个E_NOTICE非常。
(9)voidob_clean(void)
此函数用来抛弃输入缓冲区中的内容。
此函数不会烧毁输入缓冲区,而像ob_end_clean()函数会烧毁输入缓冲区。
(10)voidob_flush(void)
这个函数将送出缓冲区的内容(假如里边有内容的话)。假如想进一步处置缓冲区中的内容,必需在ob_flush()之前挪用ob_get_contents(),由于在挪用ob_flush()以后缓冲区内容将被抛弃。
此函数不会烧毁输入缓冲区,而像ob_end_flush()函数会烧毁缓冲区。
(11)voidflush(void)
革新PHP程序的缓冲,而不管PHP实行在何种情形下(CGI,web服务器等等)。该函数将以后为止程序的一切输入发送到用户的扫瞄器。
flush()函数不会对服务器或客户端扫瞄器的缓存形式发生影响。因而,必需同时利用ob_flush()和flush()函数来革新输入缓冲。
一般web服务器程序,出格是Win32下的web服务器程序,在发送了局到扫瞄器之前,仍旧会缓存剧本的输入,直到程序停止为止。
有些Apache的模块,好比mod_gzip,大概本人举行输入缓存,这将招致flush()函数发生的了局不会当即被发送到客户端扫瞄器。乃至扫瞄器也会在显现之前,缓存吸收到的内容。比方Netscape扫瞄器会在承受到换行或html标志的开首之前缓存内容,而且在承受到</table>标志之前,不会显现出全部表格。
一些版本的MicrosoftInternetExplorer只要当承受到的256个字节今后才入手下手显现该页面,以是必需发送一些分外的空格来让这些扫瞄器显现页面内容。
3.总结
flush—革新输入缓冲
ob_clean—清空(擦失落)输入缓冲区
ob_end_clean—清空(擦除)缓冲区并封闭输入缓冲
ob_end_flush—冲洗出(送出)输入缓冲区内容并封闭缓冲
ob_flush—冲洗出(送出)输入缓冲区中的内容
ob_get_clean—失掉以后缓冲区的内容并删除以后输入缓冲
ob_get_contents—前往输入缓冲区的内容
ob_get_flush—刷出(送出)缓冲区内容,以字符串情势前往内容,并封闭输入缓冲区
ob_get_length—前往输入缓冲区内容的长度
ob_get_level—前往输入缓冲机制的嵌套级别
ob_start—翻开输入把持缓冲
可以在书上很方便地做标记,及时记下自己的心得体会。 |
|