点击上面关注我
关注我哟
小编 隔天推送php教程,php本领,php视频教程,MySQL,笔试题等诸多优质内容,最接地气、重服务的当地微信平台!关注我们妥妥没错!
(商务互助接洽QQ号:2230304070)
文章来自:博客
http://www.jb51.net/article/72757.htm
阅读文章之前来一套视频教程
PHP加密技能视频教程
链接:http://pan.baidu.com/s/150RHZ73weP0euD-ZQ8rEgg
暗码:在此公众号复兴“0331”
下面是根据履历整理的PHP编码规范,可以用作给各人的范例和参考,根据必要举行弃取和修改!
(大概最新的一些php5的规范不敷完备,以后有时机保持更新!)
目次
1 编写目标
2 团体要求
3 安全规范
3.1 包罗文件
3.1.1 定名规则
3.1.2 存放规则
3.2 安全规则
3.3 一些针对PHP的规则
3.4 别的处置惩罚规则
3.4.1 对输入参数值举行转义处置惩罚
3.4.2 操纵大HTML文本
4 编码规范
4.1 定名规范
4.1.1 变量定名
4.1.2 类
4.1.3 方法或函数
4.1.4 缩写词
4.1.5 数据库表名
4.1.6 数据库字段
4.2 誊写规则
4.2.1 代码缩进
4.2.2 大括号{ }誊写规则
4.2.3 小括号( )和函数、关键词等
4.2.4 =符号誊写
4.2.5 if else swith for while等誊写
4.2.6 类的构造函数
4.2.7 语句断行, 每行控制在80个字符以内
4.2.8 不要不可思议的数字
4.2.9 true/false和0/1判定
4.2.10 制止嵌入式赋值
4.2.11 错误返回检测规则
4.3 步伐解释
4.3.1 步伐头解释块
4.3.2 类的解释
4.3.3 函数和方法的解释
4.3.4 变量大概语句解释
4.4 其他规范(发起)
4.4.1 php代码标志
4.4.2 步伐文件名、目次名
4.4.3 PHP项目通常的文件目次布局
4.4.4 PHP和HTML代码的分离题目
4.4.5 PHP项目开辟中的步伐逻辑布局
5 特定情况下PHP编码特别规范
5.1 变量界说
5.2 引用的利用
5.3 变量的输入输出
1 编写目标
为了更好的进步技能部的工作服从,包管开辟的有用性和公道性,并可最大水平的进步步伐代码的可读性和可重复使用性,指定此规范。开辟团队根据本身的现实环境,可以对本规范举行增补或淘汰。
2 团体要求
技能部php开辟规范将参照PEAR的规范,根本接纳PEAR指定的规范,在其底子上增长、修改或删除部门得当详细开辟情况的规范。本规范只针对PHP开辟过程中编码的规范,对于PHP开辟项目中文件、目次、数据库等方面的规范,将不重点涉及。
本规范包罗了PHP开辟时步伐编码中定名规范、代码缩进规则、控制布局、函数调用、函数界说、解释、包罗代码、PHP标志、文件头的解释块、CVS标志、URL样例、常量定名等方面的规则。
3 安全规范
3.1 包罗文件
3.1.1 定名规则
提取出来具有通用函数的包罗文件,文件后缀以.inc来定名,表明这是一个包罗文件。
假如有多个.inc文件必要包罗多页面,请把全部.inc文件封装在一个文件内里,详细到页面只必要包换一个.inc文件就可以了
如:xxx_session.inc
xxx_comm..inc
xxx_setting.inc
mysql_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 存放规则
一样平常包罗文件不必要直接袒露给用户,以是应该放在 Web Server访问不到的目次,制止由于设置题目而泄漏设置信息。
3.2 安全规则
请参考产物安全查抄表。
输入和输出
查抄是否做了HTML代码的过滤
大概出现的题目:假如有人输入恶意的HTML代码,会导致盗取cookie, 产生恶意登录表单,和粉碎网站
查抄变量做数据库操纵之前是否做了escape
大概出现的题目:假如一个要写入查询语句的字符串变量包罗了某些特别的字符,好比引号(’ ,”)大概分号(;) 大概造成实行了预期之外的操纵。
发起接纳的方法:利用mysql_escape_string() 或实现雷同功能的函数。
查抄输入数值的正当性
大概出现的题目:非常的数值会造成题目。假如对输入的数值不做查抄会造成不正当的大概错误的数据存入UDB、存入别的的数据库大概导致料想之外的步伐操纵发生。
举例:
假如步伐以用户输入的参数值做为文件名,举行文件操纵,恶意输入体系文件名会造成体系损毁。
核实对cookie的利用以及对用户数据的处置惩罚
大概出现的题目:不精确的cookie利用大概造成用户数据走漏
访问控制
对内部利用的产物大概供互助方利用的产物,要思量增长访问控制
logs
确保用户的保密信息没有记在log中(比方:用户的暗码)
确保对关键的用户操纵生存了完备的用户访问记载
https
对敏感数据的传输要接纳https
3.3 一些针对PHP的规则
设置 register_globals = off (Y!PHP 已经克制了register_globals,假如你利用Y!PHP可以不思量这项设置)
设置 error_reporting = E_ALL (Y!PHP 的缺省设置),而且要修正全部的error和warning
将现实的操纵放在被引用的文件中。把引用文件放到不可以被直接欣赏的目次下
3.4 别的处置惩罚规则
3.4.1 对输入参数值举行转义处置惩罚
页面接到参数必要SQL操纵,这时间必要做转义,尤其必要留意”;”。
如:$a = ” Let’s go ” ;
$sql = “Insert into tmp(col) values(’$a’)” ;
这种环境出现错误的不确定性。
3.4.2 操纵大HTML文本
许多时间必要存放一大段HTML文本供页面利用,象用户定制页头页脚等。
必要剔除脚本标志,制止实行恶意php代码。
转换”“号,包管代码完备。
4 编码规范
4.1 定名规范
订定同一的定名规范对于项目开辟来说非常紧张,不光可以养成步伐员一个精良的开辟风俗,还能增长步伐的可读性、可移植性和可重用性,还能很好的进步项目开辟的服从。
4.1.1 变量定名
变量定名分为平凡变量、静态变量、局部变量、全局变量、Session变量等方面的定名规则。
4.1.1.1 平凡变量
平凡变量定名遵照以下规则:
a. 全部字母都利用小写;
b. 对于一个变量利用多个单词的,利用’_'作为每个词的隔断。
比方:$base_dir、$red_rose_price等
4.1.1.2 静态变量
静态变量定名遵照以下规则:
a. 静态变量利用小写的s_开头;
b. 静态变量全部字母都利用小写;
c. 多个单词构成的变量名利用’_'作为每个词的隔断。
例子:$s_base_dir、$s_red_rose_prise等。
4.1.1.3 局部变量
局部变量定名遵照以下规则:
a. 全部字母利用小写;
b. 变量利用’_'开头;
c. 多个单词构成的局部变量名利用’_'作为每个词间的隔断。
例子:$_base_dir、$_red_rose_price等。
4.1.1.4 全局变量
全局变量应该带前缀’g',知道一个变量的作用域黑白常紧张的。
比方
global $gLOG_LEVEL;
global $gLOG_PATH;
4.1.1.5 全局常量
全局变量定名遵照以下规则:
a. 全部字母利用大写
b. 全局变量多个单词间利用’_'作为隔断。
例子:$BASE_DIR、$RED_ROSE_PRICE等。
4.1.1.6 session变量
session变量定名遵照以下规则:
a. 全部字母利用大写;
b. session变量名利用’S_’开头;
c. 多个单词间利用’_'隔断。
例子:$S_BASE_DIR、$S_RED_ROSE_PRICE等。
4.1.2 类
php中类定名遵照以下规则:
a. 以大写字母开头;
b. 多个单词构成的变量名,单词之间不消隔断,各个单词首字母大写。
例子:class MyClass 或class DbOracle等。
4.1.3 方法或函数
方法或函数定名遵照以下规则:
a. 首字母小写;
b. 多个单词间不利用隔断,除第一个单词外,其他单词首字母大写。
例子:function myFunction ()或function myDbOracle ()等。
4.1.4 缩写词
当变量名大概其他定名中碰到缩写词时,参照详细的定名规则,而不接纳缩写词原来的全部大写的方式。
例子:function myPear(不是myPEAR) functio getHtmlSource(不是getHTMLSource)。
4.1.5 数据库表名
数据库表名定名遵照以下规范:
a. 表名均利用小写字母;
b. 对于平凡数据表,利用_t末端;
c. 对于视图,利用_v末端;
d. 对于多个单词构成的表名,利用_隔断;
例子:user_info_t和book_store_v等
4.1.6 数据库字段
数据库字段定名遵照以下规范:
a. 全部利用小写;
b. 多个单词间利用_隔断。
例子:user_name、rose_price等。
4.2 誊写规则
誊写规则是指在编写php步伐时,代码誊写的规则,包罗缩进、布局控制等方面规范:
<span style="font-size: 12px;">4.2.1 代码缩进
在誊写代码的时间,必须留意代码的缩进规则,我们规定代码缩进规则如下:
a. 利用4个空格作为缩进,而不利用tab缩进(对于ultraedit,可以举行预先设置)
例子:
for ( $i=0;$i |