最近在对前端表单输入数据进行处理中,遇到几个PHP字符串处理函数,真心搞不懂作用是什么,API说的太过于模糊,看不太懂,求大神帮忙解答一下区别和作用:
htmlspecialchars
addslashes
stripslashes
strip_tags
nl2br
mysql_real_escape_string
我就是想将textarea里的数据insert into进mysql数据库,用户可能输入html等乱七八糟的字符串,插入mysql,我应该怎么处理?
回复内容:
最近在对前端表单输入数据进行处理中,遇到几个PHP字符串处理函数,真心搞不懂作用是什么,API说的太过于模糊,看不太懂,求大神帮忙解答一下区别和作用:
htmlspecialchars
addslashes
stripslashes
strip_tags
nl2br
mysql_real_escape_string
我就是想将textarea里的数据insert into进mysql数据库,用户可能输入html等乱七八糟的字符串,插入mysql,我应该怎么处理?
标准写法(请忘掉那一堆乱七八糟的函数):
<code>//检查防止SQL注入的函数 function MySQLCheck(&$value) { //去除斜杠(服务器配置给予的转义斜杠) if (get_magic_quotes_gpc()) { $value = stripslashes($value); } //如果不是数字则加引号(专业的转义函数) if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; //示例用法: //$user = SQLCheck($_POST['user']); //$pwd = SQLCheck($_POST['pwd']); //$sql = "SELECT * FROM users WHERE user = $user AND password = $pwd"; } </code>
函数来源(开源库):https://github.com/MoonLord-LM/MyPHP
另外,新版PHP已经废弃mysql扩展,推荐用mysqli扩展了,代码如下:
<code>//检查防止SQL注入的函数 function MySQLCheck(&$value) { global $Connect; //去除斜杠(服务器配置给予的转义斜杠) if (get_magic_quotes_gpc()) { $value = stripslashes($value); } //如果不是数字则加引号(专业的转义函数) if (!is_numeric($value)) { $value = "'" . mysqli_real_escape_string($Connect,$value) . "'"; } return $value; //示例用法: //$user = SQLCheck($_POST['user']); //$pwd = SQLCheck($_POST['pwd']); //$sql = "SELECT * FROM users WHERE user = $user AND password = $pwd"; } </code>
上面的$Connect是数据库连接。
注意,这两个函数都是要在连接了MySQL数据库之后才能执行,否则会有报错。
另外,前端如果要展示,那么也要对script等等标签进行处理,可以用PHP的str_replace函数进行替换,还有

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual
