php 正则表达式含义
$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
转义字符串中的特殊字符
'/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', 这部分含义?
[解决办法]
拆开理解就是了
然后把&#nnnnn 或 &#xnnnn 换成 &#nnnnn
\\1表示对第一个括号内的内容原样保留,就是((#(\d{3,5}
[解决办法]
x[a-fA-F0-9]{4}))这部分
[解决办法]
//取消HTML代码
function shtmlspecialchars($string) {
if(is_array($string)){
foreach($string as $key => $val) {
$string[$key] = shtmlspecialchars($val);
}
} else{
$string = preg_replace('/&((#(\d{3,5}
[解决办法]
x[a-fA-F0-9]{4})
[解决办法]
[a-zA-Z][a-z0-9]{1,5});)/', '&\\1',
str_replace(array('&', '"', '<', '>','\''), array('&', '"', '<', '>','''), $string));
}
return $string;
}