我初学 PHP ,这是一个课程作业,所以我的要求并不是特别严谨 我发现我的数据库中,有一些字符串中包含了一些特殊符号,比如“&”。我查找资料,发现 htmlspecialchars 这个函数可以用来转义。但是,难道要手动一个一个把这个函数应用到每个字符串上吗?我现在 project 做了一大半了,字符串变量少说也有几十个。。。。所以我想问一下,有没有方便一些的方法?
1
lslqtz 2016-10-09 07:21:19 +08:00 1
在使用字符串时包裹一个 mysql_real_escape_string();,如果是在函数里会轻松许多,直接函数加进去就好,如果不是就需要每个 mysql_query($str);中加成 mysql_query(mysql_real_escape_string($str));
这个函数是用于 MySQL 语句执行前的转义,可传两个参数: mysql_real_escape_string(string,connection); string 字符串。 connection MySQL 连接。如果未指定,将使用上一个连接。 注意一点是, mysql_real_escape_string() 有些人说用了这个函数并不绝对保险,仅供参考。 |
2
lslqtz 2016-10-09 07:25:22 +08:00 1
但是随后我发现,&这个字符对于 MySQL 似乎不是特殊字符,因此没有转义。
我选择再加个: str_replace('&','',$str); |
3
lslqtz 2016-10-09 07:26:08 +08:00 1
结果我发现是提取出来的,那就直接用 str_replace 吧。。
|
4
oott123 2016-10-09 09:08:48 +08:00 via Android 2
array_map
|
5
jhdxr 2016-10-09 18:59:38 +08:00 2
@lslqtz mysql_escape_string / mysql_real_escape_string 是属于 ext-mysql 的,这个在 5.5 里就已经废弃,并且从 7.0 开始被移除了。对于数据库连接,推荐使用 PDO 。
然后 LZ 你并没有解释 & 为什么是特殊符号(你对特殊符号是怎么定义的)? 最后,$GLOBALS 可以用来遍历所有变量,然而除非万不得已,不要这么做 |
7
lslqtz 2016-10-09 21:59:41 +08:00 1
写 > 谢
妈蛋我的铜币 |
8
starvedcat OP @jhdxr 我用 firefox 的 html validator 插件,提示说“&”要用“&l ”代替,然后就搜索到了那个函数
|
9
lslqtz 2016-10-10 07:54:37 +08:00
@starvedcat 这是页面检查,输出的话我一般是直接输出的,因为没什么影响
|