2015-01-16 5 views
-1

parse_str 함수를 사용하는 동안 텍스트를 자르거나 위생 처리해야합니다.PHP는 parse_str과 trim 또는 다른 위생 필터를 결합합니다.

은 이걸로 시도하지만 텍스트는 실제로 손질되지 않습니다

예를 들어
parse_str(trim($_REQUEST['data']), $v); 

, 내가 이러한 결과를 얻을 : - " "을 통과 내가 " " 대신 "" 얻을; - " a "을 전달하면 "a" 대신 " a "이 표시됩니다.

+4

? 예제를 공유 할 수 있습니까? –

+0

물론 3 개의 공백으로 구성된 문자열을 전달하면 ""가되지만 대신 ""을 가져야합니다. "a"와 같은 것, 나는 "a"대신에 "a"를 얻습니다. – Mariano

+0

@JayBlanchard 아니, 문자를 포함하는 문자열로 동일한 일이 발생합니다. 그리고 어쨌든 내가 에코 트림 ("") "나는 얻을 때" "예상대로. – Mariano

답변

3

대신을 시도해보십시오

parse_str($_REQUEST['data'], $v); 
$v = array_map('trim', $v); 

쿼리 문자열의 각 요소에서 공백을 다듬을 경우, 먼저 parse_str()와 배열에 쿼리 문자열로 변환 한 다음 trim() 해당 배열의 각 결과 요소를.

편집이

위의 의견 중 하나를 기반으로, 당신은 단지 trim()보다 더 철저하게 뭔가를 찾고 할 수있다. 그런 경우에는, 당신은 당신의 자신의 "소독"기능을 정의하고 대신 '트림'의 array_map()로 사용할 수 있습니다 : 당신이 "실제로 손질하지"무엇을 의미합니까

function sanitize($input) 
{ 
    return trim(str_replace(' ', '', $input)); 
} 

parse_str($_REQUEST['data'], $v); 
$v = array_map('sanitize', $v); 
+0

당신의 코드로'Warning : array_map() : Argument # 2는 배열이어야합니다. ' $ _REQUEST [ 'data']'는 배열이 아닙니다. – Mariano

+0

@Mariano'$ _REQUEST [ 'data']'는 어떻게 생겼습니까? – mopo922

+0

['parse_str'] (http://php.net/parse_str)는 아무 것도 반환하지 않습니다. –