当前位置:首页 > 软件资讯 > 正文

PHP开发的9条经验总结

2020-05-23 03:50:07 来源:敏帛网

  1.首要意识:安全

  大多数时候,我们开发的Web程序都是需要跟数据库打交道的,所以这里几乎可以说SQL注入是一个怎么也无法避免要拿出来讨论一下的问题。而且近年来像XSS和CSRF攻击也变得大行其道,使得"黑客"们貌似又有了一把把利器,而我们总是处于被动的状态。不过我们要记得是下面这两个原则:

  1. 永远不要相信用户输入的东西。(老话了,但这是真的)

  2. 将自己需要输出的数据进行转义。

  简单来说就是:filter in put , escape output

  如果你是新手,不要再使用类似以下的查询语句了:

  SELECt FROM users WHERe username = $_POST['username'] AND password = $_POST['password'];

  还有就是,使用PDO或Mysqli吧,不要再使用老式的mysql操作了。

  而对于,CSRF的解决方案,目前接触的都是给每一次的表单提交都设置一个token值,然后在表单提交的时候校验之即可。

  2.明确地知道各个比较操作符的差别

  PHP的比较操作符,这其实可以说是一个很小的注意点,但是在某些时候真的很重要。比如说很多时候我们得考虑清楚,该用==还是===,如果你使用过strpos()这个函数,下面的代码可能会给你一个直观的感受:

  上面这段代码的运行结果其实是输出Chris is not an author,但是现实情况是,Chris & Sean真的是Author啊,怎么回这样呢?其实是这样的:Chris正好出现在Chris & Sean首位开始处,也就是0这个位置,所以substr()返回了,由于条件判断语句中bool判断,所以0作为了false处理,于是程序输出了Chris is not an author,但是在这种情况之下我们该怎么处理呢?我们其实可以这样的:

  这里的!==和!=的不同就体现出来了。

  3.可以减少使用else就少使用else

  这个貌似从我一开始接触编程就有的一个想法,因为每次看到if(){}else{}就有一种这一段其实可以写得更好的感觉,因为一旦你减少了使用else关键字,你得代码会减少两行!没错,两行也是我们的追求,而且,从我的经验看,else少的代码貌似可读性更高,对我来说。

  if( this condition ) { $x = 5; } else{ $x = 10;}

  如果,在$x的默认值是10,还是下面这样写感觉比较好:

  $x = 10;

  if( this condition )

  { $x = 5; }

  4.去掉不必要的括号

  这里的目的其实跟else关键字部分是一样的,我们是为了更简短的代码和更优越的可读性,对以下的情况,你都应该考虑优化代码:

  if ($gollum == 'halfling') { $height ; }

  其实是可以这样的:

  if ($gollum == 'halfling') $height ;

  你甚至可以这样:

  是不是有一种又短又清晰的感觉

  5.多用str_replace()

  在很多时候我们需要对一些字符串进行替换,在PHP中有以下几个函数可以达到这个目的:

  str_replace()

  ereg_replace()

  preg_replace()

  如果你确实是需要使用正则匹配,那就使用preg_replace(),而如果在可实现替换的情况下,请使用str_replace(),因为据不完全统计,str_replace()的效率在这三个当中是最高的。

Copyright © 2013-2020 All Rights Reserved 敏帛网 版权所有