爱飞 发表于 2015-2-4 00:20:46

PHP编程:为减速 PHP 法式而勉力

讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴。法式   静态网站的内容减速显示非常主要,本文经由过程对 PHP 几个函数的深切会商,提出了 PHP 网页紧缩弛缓冲的处理计划

1、引见几个掌握 PHP 输入的函数

PHP4 采取了缓冲机制,在你决意发送之前,一切内容只是存在于缓冲中,而不是直接发送给阅读器,固然你可以用 header 和 setcookie 函数来完成,然而这两个函数比拟于功效壮大的输入函数来讲只是一点“虫篆之技”。让咱们来看看这些函数的真本领:

void ob_start(void);

本函数告知 PHP 处置器把一切输入重定向到外部缓冲,挪用这个函数后,就不会有输入到阅读器。

string ob_get_contents(void);

本函数把输入缓冲前往到一个字符串,你可以用来把聚积起来的输入一同发送到阅读器。固然要先关失落缓冲。

int ob_get_length(void);

本函数前往输入缓冲的长度。

void ob_end_clean(void);

本函数排除并封闭缓冲。在输入到阅读器之前你需求利用这个函数。

void ob_implicit_flush ()

本函数用来掌握隐式缓冲泻出,缺省为 off,假如翻开时,对每一个 print/echo 或输入号令的了局都发送到阅读器。


2、采取输入掌握来紧缩 PHP 的输入

在入手下手之前,要包管你的 PHP4 编译时撑持 Zlib。
起首,初始化输入缓冲:


<?php
ob_start();
ob_implicit_flush(0);
?>

然后发生一切的输入内容。


<?php
print("本例为紧缩输入!");
?>
页面熟成今后,采取:


<?php
$contents = ob_get_contents();
ob_end_clean();
?>

还要反省阅读器是不是撑持紧缩数据,咱们采取在变量 $HTTP_ACCEPT_ENCODING 中反省 "gzip, deflate"的举措:


<?php
if(ereg('gzip, deflate',$HTTP_ACCEPT_ENCODING)) {
// 发生 gzip 后的内容
} else {
echo $contents;
}
?>

上面咱们剖析如何发生 gzip 输入:


<?php
// 告知阅读器上面吸收的是 gzip 数据。
header("Content-Encoding: gzip");
// 显示 gzip 文件的文件头
// 只需一次就够了
echo "x1fx8bx08x00x00x00x00x00";
// 盘算长度和 CRC 校验码
$Size = strlen($contents);
$Crc = crc32($contents);
// 紧缩数据
$contents = gzcompress($contents, 9);
// 不克不及直接在这里输入内容,由于还没有写入 CRC 呢!
$contents = substr($contents, 0, strlen($contents) - 4);
echo $contents;
gzip_PrintFourChars($Crc);
gzip_PrintFourChars($Size);
function gzip_PrintFourChars($Val) {
for ($i = 0; $i < 4; $i ++) {
echo chr($Val % 256);
$Val = floor($Val / 256);
}
}
?>

3、缓冲 PHP 的输入

在 PHP4 里能很轻易的完成缓冲,咱们来看例子:


<?php
// 对恳求的 URI 发生独一的文件名。
$cached_file=md5($REQUEST_URI);
if((!file_exists("/cache/$cached_file"))||(!is_valid("/cache/$cached_file"))) {
ob_start();
ob_implicit_flush(0);
// 在这里输入缓冲
$contents = ob_get_contents();
ob_end_clean();
$fil=fopen($cached_file,"w+");
fwrite($fil,$contents,$strlen($contents));
fclose($fil);
}

readfile($cached_file);
?>

4、结论

PHP 输入缓冲函数在操作剧本输入方面非常有效,把缓冲紧缩后输入能削减 80% 的输入工夫,这关于存取其他数据资本(例如数据库或 XML)来讲,也是一个很好的缓冲机制。

如果你单纯是为了做网站赚钱,我想你还是别学php的好,去学ASP,JSP好了,毕竟它们有实力雄厚的公司去支持它们。

再见西城 发表于 2015-2-4 12:03:38

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

简单生活 发表于 2015-2-5 19:25:06

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

谁可相欹 发表于 2015-2-13 05:34:43

实践是检验自己会不会的真理。

若天明 发表于 2015-3-3 14:44:09

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

变相怪杰 发表于 2015-3-7 20:01:15

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

因胸联盟 发表于 2015-3-16 20:57:29

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

分手快乐 发表于 2015-3-17 07:08:30

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

深爱那片海 发表于 2015-3-19 02:23:27

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

灵魂腐蚀 发表于 2015-3-19 17:10:29

基础有没有对学习php没有太大区别,关键是兴趣。

爱飞 发表于 2015-3-20 10:34:09

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

老尸 发表于 2015-4-9 12:11:48

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

飘灵儿 发表于 2015-4-14 14:43:36

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

飘飘悠悠 发表于 2015-4-15 06:49:39

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

山那边是海 发表于 2015-4-21 19:13:10

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

活着的死人 发表于 2015-4-24 11:52:59

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

再现理想 发表于 2015-4-27 08:41:23

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

透明 发表于 2015-5-4 08:07:36

写的比较杂,因为我也是个新手,不当至于大家多多指正。

金色的骷髅 发表于 2015-6-5 18:38:04

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
页: [1]
查看完整版本: PHP编程:为减速 PHP 法式而勉力