仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1172|回复: 18
打印 上一主题 下一主题

[学习教程] PHP编程:为减速 PHP 法式而勉力

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
讲了这么多,无非是想说:学习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 ([int flag])

本函数用来掌握隐式缓冲泻出,缺省为 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 | 只看该作者
实践是检验自己会不会的真理。
若天明 该用户已被删除
5#
发表于 2015-3-3 14:44:09 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
变相怪杰 该用户已被删除
6#
发表于 2015-3-7 20:01:15 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
因胸联盟 该用户已被删除
7#
发表于 2015-3-16 20:57:29 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
分手快乐 该用户已被删除
8#
发表于 2015-3-17 07:08:30 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
深爱那片海 该用户已被删除
9#
发表于 2015-3-19 02:23:27 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-19 17:10:29 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
爱飞 该用户已被删除
11#
 楼主| 发表于 2015-3-20 10:34:09 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
老尸 该用户已被删除
12#
发表于 2015-4-9 12:11:48 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
飘灵儿 该用户已被删除
13#
发表于 2015-4-14 14:43:36 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
飘飘悠悠 该用户已被删除
14#
发表于 2015-4-15 06:49:39 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
山那边是海 该用户已被删除
15#
发表于 2015-4-21 19:13:10 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
活着的死人 该用户已被删除
16#
发表于 2015-4-24 11:52:59 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
再现理想 该用户已被删除
17#
发表于 2015-4-27 08:41:23 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
透明 该用户已被删除
18#
发表于 2015-5-4 08:07:36 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
金色的骷髅 该用户已被删除
19#
发表于 2015-6-5 18:38:04 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表