php处理提交字符串的函数,彻底杜绝各种攻击。
/** * 字符串处理,主要处理html字符 * @param string $str * @param bool $flip 处理http提交参数使用false,从数据库读出来展示到页面使用true * @return string */ function doStr($str, $flip = false): string { if (!$str) { return $str; } if ($flip) { // 从数据库读出来显示到页面上 $str = htmlspecialchars_decode($str, ENT_QUOTES | ENT_HTML5); $str = stripslashes($str); } else { // 提交数据保存到数据库的时候 $str = addslashes($str); $str = htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8'); } return $str; }
以下是老版本代码。
/** * 字符串处理,主要处理html字符 * @param string $str * @param bool $flip 处理http提交参数使用false,从数据库读出来展示到页面使用true * @return string */ function doStr($str, $flip = false) { if (!$str) { return $str; } if ($flip) {//当从数据库读出来显示到页面上的时候 $str = htmlspecialchars_decode($str); if (version_compare(PHP_VERSION, '7.2.34', '<')) { !get_magic_quotes_gpc() && $str = stripslashes($str); } else { $str = stripslashes($str); } } else {//提交数据保存到数据库的时候 if (version_compare(PHP_VERSION, '7.2.34', '<')) { !get_magic_quotes_gpc() && $str = addslashes($str); } else { $str = addslashes($str); } $str = htmlspecialchars($str); } return $str; }