您好,欢迎访问一九零五行业门户网

关于特殊字符的过滤.小弟我这有80分

关于特殊字符的过滤...我这有80分。。
我现遇到一个问题,在提交表单时,对提交的内容要过滤掉特殊字符如:~!@#$%^&*()_+ ..这些
如我有一提交内容:生活*&)可以)(_更美的
如何过滤成:生活可以更美的。
我的做法是:
$str=str_replace(&,,$str);  
$str=str_replace(>,,$str);  
$str=str_replace( $str=str_replace(=,,$str);
$str=str_replace((,,$str);
$str=str_replace(),,$str);
$str=str_replace([,,$str);
$str=str_replace(],,$str);
$str=str_replace(.,,$str);
$str=str_replace(*,,$str);
$str=str_replace(#,,$str);
$str=str_replace($,,$str);
$str=str_replace(@,,$str);
$str=str_replace(-,,$str);
$str=str_replace(+,,$str);
$str=str_replace(&,,$str);  
$str=str_replace(!,,$str); 
$str=str_replace(~,,$str); 
$str=str_replace(^,,$str);
$str=str_replace(%,,$str);
$str=str_replace(',,$str);
$str=str_replace(\,,$str);
有没有更简便的方法。。求指教。。我这有80分。。
分享到:
------解决方案--------------------
引用:为何:$str=preg_replace([`~!@#$%^&*()+=
------解决方案--------------------
{}':;',//[//]./?~!@#¥%……&*()――+
------解决方案--------------------
{}【】‘;:”“’。,、?],'',$str);这样写,不行呢?
1.最大问题是正则没有边界符
2.转义不是//而是\,双引号内是\\
3.
------解决方案--------------------
被看作是或选择了
4.双引号内还有双引号么
……
------解决方案--------------------
$p = str_split(&><=()[].*#$@-+&! ~ ^%'\_);
$s = '生活*&)可以)(_更美的';
echo str_replace($p, '', $s);
生活可以更美的
------解决方案--------------------
引用:明白了,多谢指点...只是不知全角的特符字符如¥)(,这些是否也能适用。。我试下
全角的话改成用下面的函数
function mb_str_split( $string, $encoding='utf-8' ) { 
    # split at all position not after the start: ^ 

其它类似信息

推荐信息