今天因为一点特定需求,仔细读了一下TP3.2的I方法源码,发现它对于字符串过滤的方法是call_user_func( $filter, $val );其中$filter是指定的过滤方法,默认是htmlspecialchars,$val是被过滤变量,但是PHP手册中明确指出,htmlspecialchars在未指定第二参数的情况下只转换双引号,而对于单引号是不进行处理的,由此可知I方法获取的变量中如果有单引号,是不会被转化,直接送进业务逻辑的,那如果我们把带有单引号的变量直接拼入SQL语句的话就有可能会存在被SQL注入的危险,这种问题解决起来的方法有很多,比如每次都采用自定义的过滤方法,自定义的方法直接 return htmlspecialchars( $val, ENT_QUOTES );就好,但毕竟感觉是多绕了一圈,所以想问问大家还有没有更好的办法