40个技巧优化您的PHP代码

1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;

2.echo的效率高于print,因为echo没有返回值,print返回一个整型;

3.在循环之前设置循环的最大次数,而非在在循环中;

4.销毁变量去释放内存,特别是大的数组;

5.避免使用像__get, __set, __autoload等魔术方法;

6.requiere_once()比较耗资源;

7.在includes和requires中使用绝对路径,这样在分析路径花的时间更少;

8.如果你需要得sexinsex到脚本执行时的时间,$_SERVER[‘REQUSET_TIME’]优于time();

9.能使用字符处理函数的,尽量用他们,因为效率高于正则;

10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;

11.如果一个函数既能接受数组又能接受简单字符做为参数,例如字符替换,并且参数列表不是太长,可以考虑多用一些简洁的替换语句,一次只替换一个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2;

12.用@掩盖错误会降低脚本运行速度;

13.$row[‘id’]比$row[id]速度快7倍,建议养成数组键加引号的习惯;

14.错误信息很有用;

15.在循环里别用函数,例如For($x=0; $x < count($array); $x), count()函数在外面先计算; 16.在方法里建立局部变量速度最快,97xxoo几乎和在方法里调用局部变量一样快; 17.建立一个全局变量要比局部变量要慢2倍; 18.建立一个对象属性(类里面的变量)例如($this->prop++)比局部变量要慢3倍;

19.建立一个未声明的局部变量要比一个初始化的局部变量慢9-10倍;

20.声明一个未被任何一个函数使用过的全局变量也会使性能降低(和声明相同数量的局部变量一样),PHP可能去检查这个全局变量是否存在;

21.方法的性能和在一个类里面定义的方法的数目没有关系,因为我添加10个或多个方法到测试的类里面(这些方法在测试方法的前后)后性能没什么差异;

22.在子类里方法的性能优于在基类中;

23.只调用一个参数并且函数体为空的函数运行花费的时间等于7-8次$localvar++运算,而一个类似的方法(类里的函数)运行等于大约15次$localvar++运算;

24.Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.

25.当输出字符串时用逗号代替点分割更快些。注意:这只对echo起作用,这个函数能接受一些字符串作为参数;

26.在apache服务器里一个php脚本页面比相应的HTML静态页面生成至少要多花2-10倍的时间,建议多用些静态HTML页面和少量的脚步;

27.除非你的安装了缓存,不然你的php脚本每次被访问都需要被重编译。建议安装个php缓存程序,这样通过去除一些重复的编译来很明显的提高你20-100%的性能;

28.建议用memcached,高性能的分布式内存对象缓存系统,提高动态网络应用程序性能,减轻数据库的负担;

29.使用ip2long()和long2ip()函数把IP地址转成整型存放进数据库而非字符型。这几乎能降低1/4的存储空间。同时可以很容易对地址进行排序和快速查找;

30.使用checkdnsrr()通过域名存在性来确认部分email地址的有效性,这个内置函数能保证每一个的域名对应一个IP地址;

31.如果你在使用php5和mysql4.1以上的版本,考虑使用mysql_*的改良函数mysqli_*;

32.试着喜欢使用三元运算符(?:);

33.在你想在彻底重做你的项目前,看看PEAR有没有你需要的。PEAR是个巨大的资源库,很多php开发者都知道;

34.使用highlight_file()能自动打印一份很好格式化的页面源代码的副本;

35. 使用error_reporting(0)函数来预防潜在的敏感信息显示给用户。理想的错误报告应该被完全禁用在php.ini文件里。可是如果你在用一个共享的虚拟主机,php.ini你不能修改,那么你最好添加error_reporting(0)函数,放在每个脚本文件的第一行(或用 require_once()来加载)这能有效的保护敏感的SQL查询和路径在出错时不被显示;

36.使用 gzcompress() 和gzuncompress()对容量大的字符串进行压缩(解压)在存进(取出)数据库时。这种内置的函数使用gzip算法能压缩到90%;

37.通过参数变量地址得引用来使一个函数有多个返回值。你可以在变量前加个“&”来表示按地址传递而非按值传递;

38.Fully understand “magic quotes” and the dangers of SQL injection. I’m hoping that most developers reading this are already familiar with SQL injection. However, I list it here because it’s absolutely critical to understand. If you’ve never heard the term before, spend the entire rest of the day googling and reading.

39.使用strlen()因为要调用一些其他操作例如lowercase和hash表查询所以速度不是太好,我们可以用isset()来实现相似的功能,isset()速度优于strlen();

40.When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. ?This is something PHP specific and does not apply to other languages, so don’t go modifying your C or Java code thinking it’ll suddenly become faster, it won’t. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend’s PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.

淘宝客创业关键的就是创新

淘宝客,听起来很美好?

很多新人接触淘宝客,都是应为这种模式听起来很美好,无需进货,无需客服,无需发货,上上网,动动手,只要把推广地址发给消费者,他们购买了,淘宝客就能获得佣金,实际上这听起来很美好,也被很多人认为没有门槛,这也是促成一大批草根群体专职投入到淘宝客的原因,我个人并不赞同这种行为,尤其是“游击队”型的淘宝客,对互联网认识比较浅的淘宝客,这些淘宝客往往缺乏宏观的认识,做事情带有一点理想主义色彩。

形成差异化竞争

淘宝客的产生,是由于大而全淘宝网无法满足消费者的选购需求,很多站长的想法是淘宝客是留不住的用户的,我不认同,因为你没有提供差异化的服务,所以没有给用户一个留在你网站的理由,淘宝网是由一家家的商店组成的,淘宝对于店铺的管理,商品的管理是强项,即所谓的“商店”的管理,但是对于“街道”的运营却无法充分满足用户的需求,在我们实体中,大部分人是在逛街状态的,并不一定会进店铺,而在逛街的过程中,几个姐妹会互相讨论购物,逛街过程中,也会受到很多的促销海报之类。这些都是由“淘宝客”来完成的。

有人赚钱,因为他在卖产品,有人赚钱,因为他在卖服务。淘宝客,你在卖什么?这是大多数淘宝客需要思考的问题,你到底在卖什么?其实道理很简单,用户凭什么要通过你这里进去淘宝购买。

1)卖内容

内容为王,你卖的不是产品,而是内容,因为产品淘宝网里多的是,但是一些独特的内容,可能只有在你这里可以看到,我们之前举过很多的例子,其中服装搭配应该来说说的较多了,今天再说一下它,例如单件服装的展示就没有任何优势,因为淘宝网里多得是,但是如果你每天精选一整套,从头到脚的服装搭配方案,并且给出,这套方案适合哪类人在什么场合穿着,这就是你网站的独特内容,你卖的就不是服装,而是方案。用户因为认可你的方案,而选择每天来关注,遇到喜欢的搭配或者单品,就会通过你的推荐前往淘宝购买。这就是你的卖点。

2)卖平台

淘宝网也是一家平台,这家平台上有许多的卖家在卖商品,如果你也要做一家平台,你必须做出和淘宝网不一样的功能,满足消费者的不同需求,不然用户没有理由在你的平台上逗留,再进去淘宝网购买,说到平台就不得不说一下蘑菇街,美丽说,现在也有很多人在做社会化电商平台,因为这类平台提供了差异化的平台服务,首先是垂直领域,其次是解决了用户“卖什么”的问题。

3)卖服务

没有技术,但是我有一颗服务大众的心,这是很多没有技术和资源的淘宝客的选择,既然无法大规模的获取用户,那就好好把现有的用户服务好,最简单的莫过于直接提供导购服务,像超站版主小光头之前做的返利站,就一直是直接提供QQ导购服务,购物新手加QQ,然后指导他完成购物过程。但是这个过程比较苦逼,但是这样做相比那些不接触消费者的淘宝客而言,转化确实要高很多。

淘宝客是一种结果

看一些成功通过淘宝客实现盈利的站点,我们不难发现,这些站点其实不是冲着淘宝客而来的,而淘宝客却可以成功他们的盈利工具,这和大部分淘宝客的思维不同,大部分人是因为淘宝客,所以选择建站。因果关系显得有点倒置了,所以冲出这种思维束缚,你才能取得更加持久的成功。

本文转自:http://www.kuqin.com/zhanz/20120717/322739.html

HTML5对互联网的若干积极影响

HTML5将会使网页图片具有更强大互动性:

上一代互联网加载的图片为GIF或JPG文件。新型互联网可以在Canvas对象中加载图片。许多好的图片库应运而生,它们中的一些增强了互联网图片的互动 性。现在,JavaScript层可以根据数据计算数值和作图。如果开发人员具备了时间和能力,所有内容可以变得更加活灵活现,文本属性将会越来越少。

HTML5使得网络视频使用更加方便:

HTML5新增了视频标签功能,它帮助网络 开发人员更容易地在网页中添加视频。此前,仅有Flash、Silverlight和JavaFX程序员可以这样做,而现在Jquery和PHP开发人员 也可以在网页中添加视频。HTML5新型视频标签启用后,HTML网页的文字会越来越少,视频却会越来越多。

HTML5或将提升网络安全:

网络浏览器插件是由不同程序开发团队以不同标准、不同 开发模式并在不同安全模型下编写的。其中一些插件的安全性显然不如其他插件高。随着插件数量激增,安全性问题跟踪的复杂性也随之增加。HTML5的出现替 代了许多插件,进而可能会消除插件引发的网络安全问题。

HTML5将简化互联网开发:

Lookingglass Cyber Solutions公司的开发人员比尔?米尔(Bill Mill)简要地解释了这一原因,他表示:“我很喜欢HTML5,因为我使用的是一个统一的开发环境。在HTML5标准下做开发,我只需要用互联网浏览 器、JavaScript和DOM就可以了,而不需要在Flash和HTML5开发环境之间来回切换。”他进一步补充道:“网络用户也会注意到这一点,因 为Flash文件将可以在一个网页中打开。”HTML5提供了统一开发语言(JavaScript)、统一的数据模型(XML和DOM)和绑定文本、音 频、视频和图形的一整套规范(CSS)。

近年来,浏览器提供商产生出相当多的互联网浏览器的改进思路,正是这些思路逐渐发展为第五代HTML标准的原型。第五代HTML正式规范早在6年前已经开始制订,许多HTML5的用户惊讶地发现,尽管规范制订得很好,但它距离成为标准还有很长的差距。

HTTP状态码(HTTP Status Code)

一些常见的状态码为:
200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用
所有状态解释:

1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。

代码 说明
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx (成功)
表示成功处理了请求的状态代码。
代码 说明
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。

3xx (重定向)
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

代码 说明
300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。

代码 说明
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
405 (方法禁用) 禁用请求中指定的方法。
406 (不接受) 无法使用请求的内容特性响应请求的网页。
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408 (请求超时) 服务器等候请求时发生超时。
409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足”期望”请求标头字段的要求。

5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

代码 说明
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

百度近日低调上线百度购物搜索

百度近日低调上线【gouwu.baidu.com】百度购物搜索。

据知情人士透露,百度购物搜索是由对商家API接口升级而来,新接口减少商家成本,只需商家按其自有类目及商品提交即可,分类和商品匹配由商品搜索技术完成。新接口也完善了商品搜索类目体系,增加商家商品展现量。

目前百度购物搜索是免费的购物搜索平台,不收取站点的费用,在百度首页没有呈现,但已推出Android和iOS版本,且全面开放招商入驻。据腾讯科技了解,百度早在2010年就尝试购物搜索,试图充当着平台整合者的角色,不过,这些年一直没有太多起色。

目前京东商城、当当网、QQ网购、亚马逊等国内外各大商城和蘑菇街及美丽说在列的分享购物都已加入百度搜索购物﹙不包括阿里系) 。

设想如果购物搜索里包括阿里系的话,此时的搜索购物也许是个高人气的产品。但缺少这一个NO.1的元素,就显得不那么完美,出现两种极大的反差。

在今年淘宝和天猫两大平台交易额破万亿。并奔向10万亿的目标,近日马云和王健林豪赌1亿。对赌10年后电商在中国零售市场份额占50%。分析百度方面肯定一直很想拉拢阿里系加入。但结果众所周知,马云不会为此买单,也不会求全与之下。

阿里巴巴方面也很费力的孤军奋战,从搜索的雅虎到到一淘。再到百试不灵的NSN。最后入股新浪微博。阿里试图摆脱百度与腾讯的牵制,但似乎做起来很吃力。

百度对入驻商家有一定要求:申请收录商家或品牌代理商需提供营业执照、税务登记证、ICP证;网站信誉良好,承诺所售商品为正品,描述属实,并提供质 量及退换货服务保障;拥有在线支付体系和客服团队(如400/800电话、在线客服等); 为项目配备专门接口人,建立相应内部运作机制。

百度称,推出百度购物搜索平台,旨在最大程度地将用户引导至有保障的出售方,同时为商家提供优质商品展示机会。加入百度购物搜索,商家提交的商品信息会被整合推送给用户从而提升商品销售转化。同时百度购物搜索也会助推商家品牌推广。

用户在百度搜索中输入关键字如“女装”,可在百度首页搜索关键词看到百度购物搜索的商品展现,如下图所示: 点击进入可看到详细的商品展示,之后即可进行商品挑选,也可以直接输入gouwu.baidu.com搜索关键词看到所检索商品展现。

Seo先生博客发布,本文固定链接地址:http://SeoSir.cc/754.html