Archive for 10月, 2011
一段代码说优化[php]
这是原始代码
- <?
- echo “Hello “.$_GET[‘name’].“!”;
- ?>
这段代码是大体没有问题的,但是存在一些细节
1. 开头使用<? 没有使用<?php 不规范如果php.ini里面没有开启的话 此段代码将无法执行
2. $_GET[‘name’]没有做前置判断是否存在。如果url里面没有这个参数。用户进来很有可能看到报警信息,不友好
3. “(双引号)和'(单引号)的区别是单引号不会对里面的内容进行匹配转义。
比如
- $a=‘123’;
- echo ‘a$a’;
会输出a$a而非a123。
在上面的代码中不需要进行这种操作,所以用'(单引号)更好,解释器不再检测变量替换,速度更快
4. 这段代码的目的是打印出字符串。字符串中间的连接符可以改为,(逗号) 让echo顺序打印,不再执行字符串的连接操作
5. 输出没有转义,存在跨站漏洞,忘了,呵呵。 感谢老大指正~(@见素)
最后的代码如下
- <?php
- if(isset($_GET[‘name’])) echo ‘Hello ‘,htmlspecialchars($_GET[‘name’]),‘!‘;
- ?>