21,882
社区成员
发帖
与我相关
我的任务
分享
<?php
function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("UTF-8","UCS-2",$v));
}
return join("",$ar);
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
?>
<?php
function addslashes_str($str){
$str=addslashes($str);
$str=str_replace($str,";",'\;');
return $str;
}
function stripslashes_str($str){
$str=stripslashes($str);
$str=str_replace($str,'\;',";");
return $str;
}
?>
/*
但是还有一点不明白的addSlashes()在php手册中过滤的字符不包括;(分号)
比如说下面这个测试字段:
abc你好;我好"大家好",'这是个测试函数' _-+=`~!@#$%^&*()\|[]{}:?/<>
转义之后是
abc你好;我好"大家好",\\\'这是个测试函数\\\' _-+=`~!@#$%^&*()\\\\|[]{}:?/<>
sql语句中';'过滤是怎么实现的...
*/