문자열을 입력으로 가져 오는 문자열을 빼고 문자열을 모두 반환하는 PHP 함수가 필요합니다. ! * '(); : @ & = + $, /? % # []문자열에서 특정 문자의 출현을 제거하는 PHP 함수
이미이 목적을 위해 만들어진 것이 있습니까? 아니면 정규식으로 수행 할 수 있습니까? 차라리이 문자열에 대해 20 가지 str_replace 함수 호출을 수행하지 않을 것입니다. 감사!
문자열을 입력으로 가져 오는 문자열을 빼고 문자열을 모두 반환하는 PHP 함수가 필요합니다. ! * '(); : @ & = + $, /? % # []문자열에서 특정 문자의 출현을 제거하는 PHP 함수
이미이 목적을 위해 만들어진 것이 있습니까? 아니면 정규식으로 수행 할 수 있습니까? 차라리이 문자열에 대해 20 가지 str_replace 함수 호출을 수행하지 않을 것입니다. 감사!
당신은 배열 않는 str_replace를 사용할 수 있습니다
// $arrayOfCharsToReplace = array('!','*', ...etc
$clean = str_replace(
$arrayOfCharsToReplace,
array_fill(0, count($arrayOfCharsToReplace), ''), // array of empty strings
$unclean
);
strtr
을 다음과 같이 사용할 수도 있습니다.
// $arrayOfReplacements = array('!' => '', '*' => '', ...etc
$clean = strtr($unclean, $arrayOfReplacements);
strtr
(권장) 또는 preg_replace
(느림)을 사용할 수 있습니다. 일반적으로, 당신은, 구두점 교체 좋아 대신 정규식 클래스를 사용하려는 경우
$quoted = preg_quote('!*\'();:@&=+$,/?%#[]','/');
$sanitized = preg_replace('/['.$quoted.']/', '', $string);
(그것은 짧은 읽을 수의) :
$sanitized = preg_replace('/[[:punct:]]/', '', $string);
블랙 리스팅 이상으로 화이트리스트를 작성해야하는 것 같습니다. 어떤 일을 허용하고 싶습니까? – chelmertz
@chelmertz, 정말로 문자열에서 정확한 문자를 제거하면됩니다. 다른 모든 것은 공정한 게임입니다. –