仓酷云

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

[学习教程] PHP编程:具体引见PHP使用提速

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:32:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
接触MYSQL,开始设计数据库程序      咱们都晓得,速度快是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图形。普通地,关于一切其他文件,这类紧缩都无效,但建议你针对各类阅读器都分离 停止测试,出格是当你利用了特别的插件或数据检查器时这一点特别主要。
    利用后面引见的各类手艺,你可以明显地改良网站的功能体现,但应当注重的是:
    PHP多是、也能够不是功能瓶颈地点。务必细心地察看每个和使用功能有关的要素,好比数据库等。
    纯真利用本文手艺只能在必定限制以内进步Web办事器的功能。因而在归罪于PHP和它的缓存之前,无妨看看是不是应当晋级办事器和是不是可以引入负载均衡手艺(后者需求较大的投资)。
    不要低估内容紧缩的感化。固然你在100 MB/s的LAN毗连下看到Web使用呼应十分敏捷,但利用Modem 毗连的用户不会,他们只会埋怨你那100 Kb的HTML页面其实过于复杂。
    但愿经由过程本文关于PHP的引见,可以给你带来匡助。
熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-
爱飞 该用户已被删除
沙发
发表于 2015-2-4 02:04:35 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
深爱那片海 该用户已被删除
板凳
发表于 2015-2-5 06:05:23 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
谁可相欹 该用户已被删除
地板
发表于 2015-2-11 05:55:59 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
小魔女 该用户已被删除
5#
发表于 2015-3-1 21:59:43 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
山那边是海 该用户已被删除
6#
发表于 2015-3-6 08:19:34 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
只想知道 该用户已被删除
7#
发表于 2015-3-8 07:59:14 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
乐观 该用户已被删除
8#
发表于 2015-3-11 11:53:10 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
兰色精灵 该用户已被删除
9#
发表于 2015-3-15 20:33:52 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
冷月葬花魂 该用户已被删除
10#
发表于 2015-3-20 12:16:16 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
小女巫 该用户已被删除
11#
发表于 2015-3-22 23:10:45 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
透明 该用户已被删除
12#
发表于 2015-3-22 23:11:13 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
蒙在股里 该用户已被删除
13#
发表于 2015-4-14 17:24:17 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
14#
发表于 2015-4-20 14:09:39 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
admin 该用户已被删除
15#
发表于 2015-4-21 15:51:39 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
分手快乐 该用户已被删除
16#
发表于 2015-4-26 05:24:21 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
再现理想 该用户已被删除
17#
发表于 2015-6-14 21:59:54 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
飘飘悠悠 该用户已被删除
18#
发表于 2015-6-30 00:01:50 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
灵魂腐蚀 该用户已被删除
19#
发表于 2015-7-11 20:40:02 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
小妖女 该用户已被删除
20#
发表于 2015-7-12 22:23:37 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 03:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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