> 백엔드 개발 > PHP 튜토리얼 > 关于特殊字符的过滤...我这有80分。。

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

WBOY
풀어 주다: 2016-06-23 14:16:37
원래의
1032명이 탐색했습니다.

我现遇到一个问题,在提交表单时,对提交的内容要过滤掉特殊字符如:~!@#$%^&*()_+ ..这些
如我有一提交内容:生活*&)可以)(_更美的

如何过滤成:生活可以更美的。

我的做法是:
$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);这样写,不行呢?

为何:$str=preg_replace("[`~!@#$%^&*()+=|{}':;',//[//]./?~!@#¥%……&*()??+|{}【】‘;:”“’。,、?]",'',$str);这样写,不行呢?

1.最大问题是正则没有边界符
2.转义不是//而是\,双引号内是\\
3.|被看作是或选择了
4.双引号内还有双引号么
……

大哥,那要怎么弄才行呀。

$p = str_split("&><=()[].*#$@-+&! ~ ^%'\"_");$s = '生活*&)可以)(_更美的';echo str_replace($p, '', $s);
로그인 후 복사
生活可以更美的

明白了,多谢指点...只是不知全角的特符字符如¥)(,这些是否也能适用。。我试下

明白了,多谢指点...只是不知全角的特符字符如¥)(,这些是否也能适用。。我试下

全角的话改成用下面的函数

<?php function mb_str_split( $string, $encoding='UTF-8' ) {     # Split at all position not after the start: ^     # and not before the end: $     mb_regex_encoding($encoding);    mb_internal_encoding($encoding);     return preg_split('/(?<!^)(?!$)/u', $string, ); } $string   = '火车票'; $charlist = mb_str_split( $string ); // 如果是gbk的话使用// $charlist = mb_str_split( $string,'GBK' ); print_r( $charlist ); ?> # Prints: Array (     [0] => 火     [1] => 车     [2] => 票 )
로그인 후 복사

对于切割串为数组,全角不适合
但手工书写的数组就是一样的了

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿