|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
把例子全部敲进去试验,完成一遍以后就会有心得了,因为你会发现为啥我的程序和书上的一模一样就是结果不正确。新手学习的时候必须承认,不容易,因为我也是过来人,你会发现原来有那么多常用的语句,函数都要记。 PHP最大的长处之一明显在于它的疾速度。普通情形下PHP老是具有足够的速度撑持Web内容静态生成,很多时分你乃至没法找出比它更快的办法。但是,当你不能不面临复杂的会见量、高负荷的使用、无限的带宽和其他各类带来功能瓶颈的要素时,你能够会问问本人是不是可以做点甚么让网站运转得更好。也许只需加上一个很不起眼的收费模块,你的PHP使用功能和Web办事器呼应速度就会有明显的改良。本文会商的就是若何进一步进步php使用的功能,给用户以更美好的阅读感触感染。本文分三个方面(代码优化、缓存、内容紧缩)论述进步PHP使用功能的各类手艺,并引见各个范畴的著名产物。
代码优化
起首咱们来看看代码优化。注重,这里的代码优化可不是指把代码写得加倍雅观大度,由于这生怕已是尽人皆知没有需要持续会商了;别的,假如你已思索到了速度成绩,极可能你早就对PHP的源代码作了一些优化。不外,有些东西却可以主动地匡助咱们完成这些冗杂的任务,如Zend Optimizer就是如许一个东西。Zend Optimizer可以从Zend Technologies收费失掉,但你必需赞同它的允许商定,注重它不是以GPL体例刊行。Zend Optimizer获得由Zend Engine运转时编译生成的两头代码,并对它停止优化,从而使得两头代码具有更快的履行效力。
Zend Optimizer的装置办法十分复杂,你只需下载为本人所用平台供应的预编译版本,把上面两行代码到场到php.ini,然后从头启动Web办事器便可:
zend_optimizer.optimization_level=15
zend_extension="/path/to/ZendOptimizer.so"
zend_loader.enable=Off
这里额定增添的第三行代码是可选的。制止zend_loader仿佛可以让Zend Optimizer的速度更快一点,所以在php.ini中加上这行代码是值得的。注重:只要当你不利用Zend Encoder Runtime时,你才可以禁用zend_loader。
缓存
假如你想要让本人复杂的PHP使用有更好的功能体现,采取缓存也是一种很好的办法。如今已有很多缓存计划可供选择,个中包含:Zend Cache,APC,和Afterburner Cache。
一切这些产物都属于“缓存模块”。当第一次呈现对.php文件的恳求时,它们会在Web办事器内存中保留PHP的两头代码,尔后就用“经由编译”的版本呼应后继的恳求。这类办法的确可以改良使用的功能,由于它使得磁盘会见量减低到了起码的水平(代码已读取息争析),代码直接在内存中运转使得办事器呼应恳求的速度大大进步。固然,缓存模块还会监督PHP源文件的变更,需要时从头缓存页面,从而避免了用户失掉的页面仍然由过时的PHP代码生成。因为缓存模块可以分明地下降办事器的负载、进步PHP使用的呼应效力,因而它们十分合适于负载较大的网站利用。
若何选择这些缓存产物
Zend Cache是Zend Technologies公司的贸易软件,而Zend Technologies就是后面提到的谁人为咱们供应PHP引擎和收费Zend Optimizer的公司。Zend Cache的确是名副其实!关于大型的PHP页面,你可以感到到第一次运转以后速度就会有所进步,并且办事器也会有更多的可用资本。遗憾的是这个产物其实不收费,不外在有些情况下它仍然是物超所值。
Afterburner Cache是来自Bware Technologies的收费缓存模块,以后这个产物仍是Beta版。Afterburner Cache的做法看起来与Zend Cache差不多,但它对功能的改良水平(还)不克不及与Zend Cache比拟,并且它还不克不及与Zend Optimizer一同任务。
APC是Alternative PHP Cache的缩写,它是来自Community Connect的又一个收费缓存模块。这个产物已具有足够的不乱性供正式场所利用,并且它看起来也能在很大水平上进步呼应恳求的速度。
内容紧缩
后面咱们会商了几种进步PHP使用功能的办法,上面来看看使得阅读者感应网站速度太慢的别的一个主要要素:下载速度。假如PHP使用在外部Intranet上运转,并且每台客户机都以100 MB/s的速度毗连到办事器,那末下载速度应当不是甚么成绩。但是,假如办事器还要为慢腾腾的Modem用户供应办事,那末值得思索内容紧缩。大多半阅读器都依据IETF尺度撑持用gzip停止内容紧缩。这意味着你可以用gzip紧缩内容但是发送给阅读器,由阅读器解紧缩数据以后再显示页面,这全部进程对用户来讲完整通明。至于办事器真个内容紧缩,如今已有很多分歧的办法可供利用。
例如,来自Remote Communications的收费Apache模块mod_gzip就具无为撑持这类内容编码的阅读器紧缩静态Web内容的才能。关于绝大多半静态Web内容,mod_gzip都十分无效。mod_gzip可以便利地编译到Apache外面,也能够作为DSO利用。据Remote communications公司说,mod_gzip也可以紧缩来自mod_php、mod_perl等的静态内容。我试了一次又一次,但看来仍是不可。我看了很多关于mod_gzip的服装论坛和文章,看离开了mod_gzip的下一个版本(多是1.3.14.6f)这个成绩无望失掉处理。在此之前,咱们可以在网站的静态局部利用mod_gzip。
但是有时咱们的确需求紧缩静态内容,所以必需找找其他举措。有一种举措是利用class.gzip_encode.php,这是一个可以用来紧缩页面内容的PHP类,详细办法是在PHP剧本的开首和末尾挪用该类的某些函数。假如要在网站级完成这个计划,可以从php.ini文件的auto_prepend和auto_append指令挪用这些函数。这类办法固然无效,但它无疑为高负载的网站带来了更多的开支。关于若何利用这个类的具体申明,请拜见它的源代码。它的源代码申明相当完美,作者告知了你一切你必需晓得的工作。
PHP 4.0.4有一个新的输入缓存句柄ob_gzhandler,它与后面的类类似,但用法分歧。利用ob_gzhandler时要在php.ini中到场的内容以下:
output_handler = ob_gzhandler ;
这行代码使得PHP激活输入缓存,并紧缩它发送出去的一切内容。假如因为某种缘由你不想在php.ini中加上这行代码,你还可以经由过程PHP源文件地点目次的.htaccess文件改动默许的办事器行动(不紧缩),语法以下:
php_value output_handler ob_gzhandler
或是从PHP代码挪用,以下所示:
ob_start("ob_gzhandler");
采取输入缓存句柄的办法的确十分无效,并且不会给办事器带来甚么特别的负荷。但必需注重的是,Netscape Communicator对紧缩图形的撑持欠安,因而除非你可以包管一切用户都利用IE阅读器,不然你应当制止紧缩JPEG和GIF图形。普通地,关于一切其他文件,这类紧缩都无效,但建议你针对各类阅读器都分离停止测试,出格是当你利用了特别的插件或数据检查器时这一点特别主要。
原作者:松下客
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。 |
|