<?php function hRepPostStr($val, $ecms=0){ if($ecms==1){ //编码双引号和单引号 $val=ehtmlspecialchars($val, ENT_QUOTES); } CkPostStrChar($val); $val=AddAddsData($val); return $val; } function ehtmlspecialchars($val, $flags=ENT_COMPAT){ global $ecms_config; //在PHP 5.4之前的版本,无法被识别的字符集将被忽略并由ISO-8859-1替代 //自PHP 5.4起,无法被识别的字符集将被忽略并由UTF-8替代 if(PHP_VERSION>="5.4.0"){ //安装帝国CMS的编码版本 if($ecms_config["sets"]["pagechar"]=="utf-8"){ $char="UTF-8"; }else{ $char="ISO-8859-1"; } $val=htmlspecialchars($val,$flags,$char); }else{ $val=htmlspecialchars($val,$flags); } return $val; } function CkPostStrChar($val){ if(substr($val,-1)=="\\"){ exit(); } } //bool get_magic_quotes_gpc(void) //返回当前magic_quotes_gpc配置选项的设置,记住,尝试在运行时设置 magic_quotes_gpc 将不会生效 //返回值 如果magic_quotes_gpc为关闭时返回0,否则返回1。在PHP 5.4.0起将始终返回false。 //更新日志 //5.4.0 始终返回FALSE,因为这个魔术引号功能已经从PHP中移除了。 define("MAGIC_QUOTES_GPC",function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()); function AddAddsData($data){ if(!MAGIC_QUOTES_GPC){ //返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线,这些字符是单引号、双引号、反斜线与NULL //该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串 //默认地,PHP对所有的GET、POST和COOKIE数据自动运行addslashes()。所以您不应对已转义过的字符串使用addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数get_magic_quotes_gpc()进行检测 $data=addslashes($data); } return $data; } ?>