目录1、编写目的52、整体要求63、安全规范73.1、包含文件73.1.1、命名规则73.1.2、存放规则83.2、安全规则83.3、一些针对PHP的规则93.4、其它处理规则93.4.1、输入参数处理93.4.2、操作大HTML文本104、编码规范114.1、命名规范114.1.1、变量命名114.1.2、类命名124.1.3、方法或函数134.1.4、缩写词134.1.5、数据库表名134.1.6、数据库字段134.2、书写规则144.2.1、代码缩进144.2.2、大括号{}书写规则144.2.3、小括号()和函数、关键词等154.2.4、=符号书写154.2.5、ifelseswithforwhile等书写164.2.6、类的构造函数164.2.7、语句断行164.2.8、数字174.2.9、判断184.2.10、避免嵌入赋值184.2.11、错误返回检测规则184.3、程序注释194.3.1、程序头注释块194.3.2、类的注释204.3.3、函数和方法的注释214.3.4、变量或者语句注释214.4、其它规范224.4.1、PHP代码标记224.4.2、程序文件名、目录名224.4.3、PHP项目通常的文件目录结构234.4.4、PHP和HTML代码的分离问题234.4.5、PHP项目开发中的程序逻辑结构235、特定环境下PHP编码特殊规范255.1、变量定义255.2、引用的使用255.3、变量的输入输出261、编写目的为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。开发团队根据自己的实际情况,可以对本规范进行补充或裁减。11、程序员可以了解任何代码,弄清程序的状况;2、新人可以很快的适应环境;3、防止新接触PHP的人出于节省时间的需要,自创一套风格并养成终生的习惯;4防止新接触PHP的人一次次的犯同样的错误;5、在一致的环境下,人们可以减少犯错的机会;6程序员们有了一致的敌人;2、整体要求技术部php开发规范将参照PEAR的规范,基本采用PEAR指定的规范,在其基础上增加、修改或删除部分适合具体开发环境的规范。本规范只针对PHP开发过程中编码的规范,对于PHP开发项目中文件、目录、数据库等方面的规范,将不重点涉及。本规范包含了PHP开发时程序编码中命名规范、代码缩进规则、控制结构、函数调用、函数定义、注释、包含代码、PHP标记、文件头的注释块、CVS标记、URL样例、常量命名等方面的规则。3、安全规范当我们尝试编码时,很多时候不知道如何去让自己的代码变得安全一点,因为我们缺乏安全常识,安全常识的规范可以帮你杜绝一些日常的菜鸟黑客的攻击,却不能阻止骨灰级专家们的凌厉攻势,所以更高深的安全我们还得从其他途径学习。3.1、包含文件PHP文件的包含在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。3.1.1、命名规则提取出来具有通用函数的包含文件,文件后缀以.inc来命名,表明这是一个包含文件。如果有多个.inc文件需要包含多页面,请把所有.inc文件封装在一个文件里面,具体到页面只需要包换一个.inc文件就可以了。女Q:xxx_session.inc、xxx_comm.inc、xxx_setting.inf、myssql_db.inc。把以上文件以以下方式,封装在xxx.basic.inc文件里面:require_once('xxx_session.inc');require_once('xxx_comm.inc');require_once('xxx_setting.inc');require_once('mysql_db.inc');注意:是否需要封装到一个文件,视情况而定,如果每个inc的功能是分散到不同的页面使用的话,就不建议封装。3.1.2、存放规则—般包含文件不需要直接暴露给用户,所以应该放在WebServer访问不到的目录,避免因为配置问题而泄露设置信息。3.2、安全规则请参考产品安全检查表。输入和输出:检查是否做了HTML代码的过滤可能出现的问题:如果有人输入恶意的HTML代码,会导致窃取cookie,产生恶意登录表单,和破坏网站。检查变量做数据库操作之前是否做了escape可能出现的问题:如果一个要写入查询语句的字符串变量包含了某些特殊的字符,比如引号(',")或者分号(;)可能造成执行了预期之外的操作。建议采用的方法:使用mysql_escape_string()或实现类似功能的函数。检查输入数值的合法性可能出现的问题:异常的数值会造成问题。如果对输入的数值不做检查会造成不合法的或者错误的数据存入UDB、存入其它的数据库或者导致意料...