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('&amp;', '&quot;', '&lt;', '&gt;'), $string));
}
return $string;
}

解决方案 »

  1.   

    过滤特殊字符
    Regex reg = new Regex(@"\W*|[!.',]");
    string result = reg.Replace(str, "");
      

  2.   


    写成一个方法太复杂了.按照原方法的判断语句if(is_array($string))直接切分成两个方法.
    一个方法传入的参数是hashtable,
    一个方法传入的参数是字符串.
      

  3.   

    就是过滤一些字符嘛,传的参数可能是数组也可能是单个字符,那个is_array就是判断是否是数组的,在.net中好像没有该函数,你自己判断下就行了,大概思想知道了,自己重写一下就行了