PHP 编程技巧与优化

  • 1、 尽量采用大量的PHP内置函数。
  • 2、 使用echo代替print,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接
  • 3、 用单引号代替双引号来包含字符串,这样做会更快一些。
  • 4、 $row['id']的效率是$row[id]的7倍。
  • 5、 在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。
  • 6、 如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER['REQUEST_TIME']要好于time()
  • 7、 函数代替正则表达式完成相同功能,str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
  • 8、 尽量不要在for循环中使用函数,比如for ($x=0; $x < count($array); $x++)每循环一次都会调用count()函数。
  • 9、 Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
  • 10、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
  • 11、尽量使用foreach代替for/while
  • 12、读取小文件使用fread,读取大文件使用file_get_contents,特大的文件使用fseek
  • 13、在验证 email 地址时使用 checkdnsrr() 函数验证域名是否存在,这个内置函数能够确认指定的域名能够解析成 IP 地址
  • 14、使用 error_reporting(0) 函数来防止用户看到潜在的敏感错误信息。在理想情况下,发布服务器应该在 php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php、ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0)
  • 15、在网数据库中存储很大的字符串之前使用 gzcompress()gzuncompress() 来显式的压缩/解压字符串
  • 16、完全理解"魔术引号"和 SQL 注入的危险性,最简单的防止sql注入的方法:在php、ini中将magic_quotes设置为On,使用mysql_real_escape_string()函数转义
  • 17、不要相信用户提交的数据,一定使用htmlentities()htmlspecialchars() 先进行转义
  • 18、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言
  • 19、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存
  • 20、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%

PHP 编程技巧与优化的更多相关文章

  1. Java编程技巧:if-else优化实践总结归纳

    文/朱季谦 说实话,其实我很讨厌在代码里大量使用if-else,一是因为该类代码属于面向过程的,二嘛,则是会显得代码过于冗余.这篇笔记,主要记录一些自己在工作实践当中针对if-else的优化心得,将会 ...

  2. java命名规范和编程技巧

    一个好的java程序首先命名要规范. 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,方便维护等作用 Package 的命名 Package 的名字应该都是由一个小写 ...

  3. 从linux内核中学到的编程技巧 【转】

     从linux内核中学到的编程技巧  分类: LINUX 1构建泛型宏 (./linux/include/linux/kernel.h) #define min(x, y) ({ \ typeof(x ...

  4. VB编程技巧推荐

    VB编程技巧推荐   1.zyl910的专栏——理论水平高 用VB写高效的图像处理程序 V2.0 优化分支代码——避免跳转指令堵塞流水线 2.Laviewpbt的专栏 —— 有很多算法的代码,实用性高 ...

  5. 浅谈自底向上的Shell脚本编程及效率优化

    作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...

  6. js异步编程技巧一

    异步回调是js的一大特性,理解好用好这个特性可以写出很高质量的代码.分享一些实际用的一些异步编程技巧. 1.我们有些应用环境是需要等待两个http请求或IO操作返回后进行后续逻辑的处理.而这种情况使用 ...

  7. EF – 2.EF数据查询基础(上)查询数据的实用编程技巧

    目录 5.4.1 查询符合条件的单条记录 EF使用SingleOrDefault()和Find()两个方法查询符合条件的单条记录. 5.4.2 Entity Framework中的内部数据缓存 DbS ...

  8. VC多文档编程技巧(取消一开始时打开的空白文档)

    VC多文档编程技巧(取消一开始时打开的空白文档) http://blog.csdn.net/crazyvoice/article/details/6185461 VC多文档编程技巧(取消一开始时打开的 ...

  9. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  10. 深入理解C#:编程技巧总结(二)

    原创文章,转载请注明出处! 以下总结参阅了:MSDN文档.<C#高级编程>.<C#本质论>.前辈们的博客等资料,如有不正确的地方,请帮忙及时指出!以免误导! 在上一篇 深入理解 ...

随机推荐

  1. AcWing 第五场周赛

    比赛链接:Here AcWing 3726. 调整数组 签到题 void solve() { int n; cin >> n; int x = 0, y = 1, c; for (int ...

  2. vivo 应用商店推荐系统探索与实践

    介绍 vivo 应用商店推荐系统如何高效支撑个性化的推荐需求. 一.前言 商店的应用数据主要来源于运营排期.CPD.游戏.算法等渠道,成立推荐项目之后也没有变化,发生变化的是由推荐系统负责和数据源进行 ...

  3. C#设计模式10——外观模式的写法

    什么是外观模式? 外观模式(Facade Pattern)又称门面模式,是一种结构型设计模式,它提供了一个统一的接口,用来访问一个子系统中一群功能相关联的接口.外观模式定义了一个高层接口,让子系统更容 ...

  4. navicat 查看,设计并导出数据库 ER图

    转载请注明出处: 1. navicat 查看 ER 图,有两种方式: 第一种:选中数据库,并右键点击选中逆向数据库到模型. 第二种:可以在工具栏点击查看,选中 ER,打开 某数据库,便会展示 该数据库 ...

  5. zookeeper 集群环境搭建及集群选举及数据同步机制

    本文为博主原创,未经允许不得转载: 目录: 1. 分别创建3个data目录用于存储各节点数据 2. 编写myid文件 3. 编写配置文件     4.分别启动 5.分别查看状态 6. 检查集群复制情况 ...

  6. google浏览器网页截取全屏

    本想在谷歌浏览器滚动截取网页全屏,没有找到好的方法,在网上找到一个快捷键,未曾使用过,特地记录下: 第一步:按F12打开 第二步:window:Ctrl + Shift + P mac:command ...

  7. golang将字符串进行md5加密

    最近写项目要把登录密码进行md5加密保存,在golang里面的写法略有不同,再次记录一下. package main import ( "crypto/md5" "enc ...

  8. 问题--缺少 cryptography 包

    1.问题 raise RuntimeError( RuntimeError: 'cryptography' package is required for sha256_password or cac ...

  9. Go-选择排序

    // SelectionSort 选择排序 // 思路: // 1. 遍历整个元素集合,将最小值取出追加到一个有序的元组 // 2. 重复遍历剩余元素集合,取出最小值追加到一个有序元组 // 选择排序 ...

  10. [转帖]TiKV Config Learn the TiKV configuration file

    The TiKV configuration file supports more options than command-line parameters. You can find the def ...