05月
29
[译]怎样的代码才算是好的PHP代码
文章分类:PHP 查看次数:342 + 88
原文地址:click here
挑主要的翻译了一下
怎样的代码才算是好的php代码?这个问题并没有确定的完美的答案,但一个有经验的php编程人员,应该能想到以下几个方面
好的php代码应该是结构化的。大块的代码应该能够被分为几个函数,以此来达到同样的目的。功能不是很明显的函数应该被加上注释。同时应该将前端(如html,js,css等)与服务端代码分离开来。php的oop特性对此给予了足够的支持。
好的php代码应该遵循命名规范。也就是说变量名或函数名应该遵循各自的命名规范,采用标准的数据库连接和错误处理方法。确保代码的缩进一致。是你的代码方便阅读。
好的php代码应该是兼容的。PHP有很多的特性,比如"magic quotes"或者"short tags",它们的状态对于差的代码是很有影响的。所以应该在写代码的时候考虑到这些因素。
好的php代码应该是安全的。虽然PHP提供优良的性能和很好的灵活性,但是代码的安全,完全掌握在开发者的手中,比如常见的"跨站、注入、字符编码漏洞"等等。
下面来看一段差的代码
一个很重要的问题是用户的提交被直接输出($_GET['query']),导致了跨站(XSS)的出现,当然有很多的补救办法
好的办法
这是最基本的,处理用户的输入
更好的办法
<?php
if (isset($_GET['query']))
{
echo '<p>Search results for query: ',
htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>';
}
?>
if (isset($_GET['query']))
{
echo '<p>Search results for query: ',
htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>';
}
?>
这段代码看起来就比较符合我们的标准了
- 将"<?"转换为更通用的"<?php",同时也免去了xml歧义
- 在输出"$_GET['query']"之前,isset检测内容是否为空
- 去掉了无意义的括号
- 将双引号变为单引号,避免触发搜索时插入的变量
- 将"."变为","表现上更科学(我感觉没啥必要)
- 给htmlspecialchars函数增加了ENT_QUOTES参数,将引号也转义了,更加安全
没有相关文章,以下是随机为您推荐的文章
评论
发表评论

