电脑安全

您当前的位置:主页 > 电脑安全 >

PHP生成静态页面注意几点-网络编程

来源:[db:来源]标题:   缓冲区    编辑:电脑技术全能网 时间:2019-09-18 18:00

原标题:PHP生成静态页面注意几点-网络编程
   一 : 引 言 在速率上,动态页面要比静态页面的比喻php快许多,这是毫无疑难的,然而因为动态页面的机动性较差,假如不借助数据库或其余的装备保留相干信息的话,团体的治理上比拟烦琐,比喻修正编纂.比喻浏览权限限度等,然而,对应一些咱们常常反复应用的文件,比喻说,开辟的消息公布体系,咱们不盼望许多用户都读取数据库才表现成果,如许一方面耗费了效劳器的资本,另一方面占去了扫瞄者大批宝贵的呼应时光,全部,有了"动态页面话"的做法,以后许多网站都采纳这类技巧,个别都是由治理后盾操纵,或许天生html间接表现,或许xhtml用css操纵表现,或许天生xml用xslt表现,这些技巧都不是难的,在这里我就浅易的说说天生html的方式.二 : 准备常识 模板技巧: [PHP]模板引擎Smarty深刻浅出先容--2005-12-31[PHP]笑谈设置,应用Smarty技巧 2006-01-04 缓存技巧: 有些信息比喻常常稳定的,然而仍是能变的信息放在缓存中以放慢表现速率,这是很有代价的,所谓的缓存,艰深的懂得就是一些保留在效劳器真个共用信息.它是于效劳器同存亡的,咱们在保留缓存的时间能够指定下次更新的时光的推断,比喻要在5分钟更新一次,能够记载前次更新的时光,和以后时光比拟,假如大于 5 分钟 ,读取数据库,更新换成,不然间接读取缓存数据,固然,缓存须要客户端用户激活的,只要一次.ob_start()函数:翻开输入缓冲区. 函数格局 void ob_start(void) 阐明:当缓冲区激活时,全部来自PHP顺序的非文件头信息均不会发送,而是保留在外部缓冲区。为了输入缓冲区的内容,能够应用ob_end_flush()或flush()输入缓冲区的内容。Flush:革新缓冲区的内容,输入。 函数格局:flush() 阐明:这个函数常常应用,效力很高。ob_get_contents :前往外部缓冲区的内容。 函数格局:string ob_get_contents(void) 阐明:这个函数会前往以后缓冲区中的内容,假如输入缓冲区没有激活,则前往 FALSE.ob_get_length:前往外部缓冲区的长度。 函数格局:int ob_get_length(void) 阐明:这个函数会前往以后缓冲区中的长度;和ob_get_contents一样,假如输入缓冲区没有激活,则前往 FALSE.ob_end_clean:删除外部缓冲区的内容,而且封闭外部缓冲区 函数格局:void ob_end_clean(void) 阐明:这个函数不会输入外部缓冲区的内容而是把它删除ob_end_flush:发送外部缓冲区的内容到扫瞄器,而且封闭输入缓冲区 函数格局:void ob_end_flush(void) 阐明:这个函数发送输入缓冲区的内容(假如有的话)ob_implicit_flush:翻开或封闭相对革新 函数格局:void ob_implicit_flush ([int flag]) 阐明:默许为封闭缓冲区,翻开相对输入后,每个剧本输入都间接发送到扫瞄器,不再须要挪用 flush() 文件写入: int fwrite ( resource handle, string string [, int length] )fwrite() 把 string 的内容写入 文件指针 handle 处。 假如指定了 length,当写入了 length 个字节或许写完了 string 当前,写入就会结束,视乎先遇到哪类情形。 fwrite() 前往写入的字符数,呈现过错时则前往 FALSE 。 相干参考民间网站: 文件参考三 : 处理计划 思绪: 开启 ob_start缓冲,当曾经调出数据的时间猎取 ob_get_contents,而后天生动态页,ob_end_clean肃清缓冲.ok,就这么来,来看一个例子(php+mysql的联合):创立数据库:CREATE TABLE `bihtml` (`id` int(11) NOT NULL auto_increment,`szdtitle` varchar(16) NOT NULL,`szdcontent` text NOT NULL,PRIMARY KEY(`id`)) TYPE=MyISAM;猎取以后的ID,并导入模板:ob_start();$id=_POST['id']if(!isset($id)&&is_integer($id)){ @$db=new mysqli('localhost','root','admin','bihtml'); $result=$db->fetch_one_array("select* from szd_bi where id='$id'"); if(!empty($result)) { $tmp->assign(array( "Szdtitle",htmlspecialchars($result['titles']), "Szdcontent",$result['titles'])); } $tpl->display('default_1.tpl'); $this_my_f= ob_get_contents(); //此处要害 ob_end_clean(); $filename = "$id.html"; if(tohtmlfile_cjjer($filename,$this_my_f)) echo "天生胜利 $filename"; else echo "天生辨认"; }}//把天生文件的进程写出函数function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content){ if (is_file ($file_cjjer_name)){ @unlink ($file_cjjer_name); }$cjjer_handle = fopen ($file_cjjer_name,"w"); if (!is_writable ($file_cjjer_name)){ return false; } if (!fwrite ($cjjer_handle,$file_cjjer_content)){ return false; } fclose ($cjjer_handle); //封闭指针return $file_cjjer_name;}四 : 阐明事项1: 个别倡议治理员增加数据的时间就天生动态页面,能够斟酌记载天生的文件名次和门路.2:php重要是 ob_starts()和 ob_get_contents,天生动态页面的时间很有效,固然也能够斟酌调出数据库间接调换模板外面的变量也是能够的.3:重要的模板应用smarty,phplib都是能够的,smarty应用比拟浅易.

上一篇:php分页程序及简单实例说明-网络编程

下一篇:没有了