function ihtmlspecialchars($string)
{
if(is_array($string))
{
foreach($string as $key => $val)
{
$string[$key] = ihtmlspecialchars($val);
}
} else
{
$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
}
return $string;
}
{
if(is_array($string))
{
foreach($string as $key => $val)
{
$string[$key] = ihtmlspecialchars($val);
}
} else
{
$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
}
return $string;
}
Regex reg = new Regex(@"\W*|[!.',]");
string result = reg.Replace(str, "");
写成一个方法太复杂了.按照原方法的判断语句if(is_array($string))直接切分成两个方法.
一个方法传入的参数是hashtable,
一个方法传入的参数是字符串.