ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PHP生成HTML代码,别让百万级访问量压垮服务器

PHP生成HTML代码,别让百万级访问量压垮服务器 由于每当用户对动态链接实现点击操作之际, 均会朝着服务器发出针对数据进行查询的请求, 鉴于此对于一个访问量有可能达到百万甚至千万级别的网站来讲, 这毫无疑问是给服务器造成了极大的负担, 因而将动态数据转变为静态 html 页面便成为了节约人力以及物力的首要选择。之前不曾有过对应的经验, 起初之时, 觉着这项技术极为神秘, 然而, 看过一些实例之后, 发觉并非那般复杂只是网上的资料并非特别详尽, 历经一个上午加中下午 的试验, 最终将该做的任务给完成了, 紧接着就是一些心得以及一个简易的例子。希望大虾们不要笑话我哈普通情形下, 运用php去转变输出html页面存在两种方式, 引用大虾所撰写的文章如下:第一种利用模板。现如今, PHP的模板已然是数量众多了, 存在功能强大的那种, 同时还有简单易用的这类等等。它们当中的每一种模板, 均有着一个能够获取输出内容的函数。而我们生成静态页面所使用的方法, 借助的正是这个函数。采用这个方法具备的优点在于, 代码相对显得比较清晰, 并且可读性良好。这里我用做例子说明如何生成静态页:assign(title,HelloWorld!); $content$t-fetch(templates/index.htm); //这里的fetch()就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了 $fpfopen(archives/2005/05/19/0001.html,w); fwrite($fp,$content); fclose($fp); ?第二种方法利用ob系列的函数。这里所运用到的函数主要涵盖了, 当中意味着开启浏览器缓冲区, 在开启缓冲之后, 全部来源于PHP程序却并非文件头的信息一概不会被发送出去, 反过来会被保存于内部缓冲区里。一直到你采用了。而在此处极为关键的一个函数便是, 这个函数所具备的作用是获取缓冲区的内容。这等同于上面所说的那个fetch(), 二者道理是一样的。我选用的第2种方法也就是用ob系列的函数刚刚开始看这个之际, 有那么一点儿不太清楚, 随后才清楚知晓, ob所代表的意思, 也就是输出缓存。当你着手准备进行输出之际, 所有的数据均被保存在ob的里面, 在服务器对php完成解析之后, 把所有打算输出到客户端的html代码, 都放置存于ob里面, 要是我们想要输出html静态页面, 只要将缓存取出来, 写入到一个html页面便可。所以原理其实是很简单的这里运用到了几个函数, 因为我刚开始学习php, 好多函数我都不清楚, 所以在此也做一番说明, 期望能够对大家有所助力。():开始“捕捉”缓存也就是从这里开始打开浏览器的缓存():关闭浏览器缓存():读取缓存内容fopen(”文件路径”,”打开模式”), 此函数用于打开文件, 该函数的打开模式存在好几种, 接下来说明几种主要的模式:“r”只读方式打开将文件指针指向文件头。“r”读写方式打开将文件指针指向文件头。以“w”写入方式进行打开操作, 把文件指针朝着文件头的方向去定位, 还要将文件的大小截断为零。要是文件并不存在, 那就尝试去创建这一文件。以“w”的读写方式去打开, 把文件指针定位到文件头那儿, 并且将文件的大小截断使得其变为零。要是文件不存在的话, 那就试着去创建它。(”文件名称”,”写入内容”)写入文件()关闭文件因为我所要转换的html文件数量颇多, 或许可达几百个, 所以在此处无法静态地指定fopen的路径设定值, 大家能够设置一个路径变量, 其中能够留存用户传递过来的id等相关信息, 以便于进行html文件的命名工作, 下面是我将上次php读取xml数据与之相结合的一个简易示例。; if($name) echo$xml_data. ; } functionendElement($parser_instance,$element_name)//结束标签事件的函数 { global$name,$position; $namefalse; $positionfalse; } //xml数据读取完毕 $htmlname$id..html;//$id可以自己定义这里代表用户传来的id $htmlpatharchives/.$htmlname;//设置路径变量 $contentob_get_contents();//取得php页面输出的全部内容 $fpfopen($htmlpath,w); fwrite($fp,$content); fclose($fp); ?刚才所讲的这些内容, 便是向大家去陈列的, 借助php来生成静态html页面的方式, 而且是两种方式哦, 期望大伙能够心生喜爱之情。
返回列表