2015-01-06 13 views
1

Sanitize라는 클래스를 만들었습니다.filter_var에서 연산자로 링크 된 PHP 상수 목록

filter_var 함수를 사용하여 데이터를 필터링하고 위생적으로 처리합니다. 나는 배열에서 filter_var() 세 번째 매개 변수를 구축 : 다음 코드처럼 $ 옵션 : I 오른쪽 옵션 배열을 구축 할 수 있지만,이 방법은 작동하지 않습니다

private $options = array('typeOfData' => array('options' => array(), 'flags' => array()));

합니다. 나는 옵션이나 깃발 중 하나만 원했다. 문제가되지는 않을 것이다. 불행히도 filter_var에 몇 가지 옵션이나 플래그 상수를 전달하고 싶습니다.

플래그의 경우 원하는 결과를 FLAG1 | FLAG2? 그렇지 않으면 필요한 플래그에 따라 filter_var를 사용하는 스위치와 함께 filter_var를 사용해야합니까? 유형에 따라 소독하라고 filter_var($value, $this->filters[$typeOFData], $this->currentOptions);

+0

$ options는 클래스 메서드 중 하나의 옵션 매개 변수입니까? 옳은? 옵션으로 무엇을 전달 하시겠습니까? 그리고 무엇을 필터링하려고합니까? – ZenStein

+0

수정 된 매개 변수는 함수가 아닌'filter_var()'의 세 번째 매개 변수로 수정되었습니다. 추가 : 내 코드에서'filter_var()'사용. – sorani

+0

다른 플래그를 사용하여 동일한 문자열을 몇 번 다른 것으로 필터링 하시겠습니까? 또는 인스턴스에 따라 다른 플래그로 필터링하고 싶습니까? 두 가지 방법 모두 쉽습니다. – ZenStein

답변

1

클래스 :

class Sanitize{ 
private $data; 
private $filteredData; 
private $options; 
private $typeof; 
private $filters; 

function __contruct($data){ 

$this->typeof = gettype($data); 
$this->data = $data; 

switch ($this->typeof){ 
    case "integer": 
     $this->options = array(/* array of options for integer type*/); 
     $this->filters = array(/*array of all filters you want to use on integers*/) 
     break; 
    case "string": 
     //.... 
} 

private function getSanitized(){ 

$filtersNum = count($this->filters); 

for($x=0;$x<$filtersNum;$x++){ 

if(allowsOptions($this->filters[$x])){ $options = $this->options; }else{$options = null;} 

$this->filteredData = filter_var($this->data, $this->filters[$x], $options) 
} 
} 

private function allowsOptions($filter){ 
/* all your code to check*/ 
return true or false 
} 
} 

내가하지 않으면이, 도움이되기를 바랍니다 알려

이 filter_var를 사용하여 현재 코드입니다.

+0

위대하지만 클래스의 기초가 내 것과 비슷합니다. 문제는'array ('flag'=> FLAG)'처럼 하나의 필터 상수 플래그가 아니라'array ('flag'=> flag1 | flag2) 플래그를 두 개 이상 넣고 싶을 때입니다. – sorani

+0

조금 개정했습니다. 모든 유형에 대해 모든 필터를 설정하면 메소드를 작성합니다. 필터 배열을 통해 메서드를 반복하십시오. 알다? – ZenStein

+0

그게 효과가 있습니까? – ZenStein