2014-01-07 2 views
2

PHP 명령 parse_ini_file을 사용하여 응용 프로그램의 구성을로드합니다. PHP가 documentation인데, 예를 들어, 숫자 값은 따옴표없이 따옴표로 묶어서 표시됩니다 (").parse_ini_file 숫자 값을 문자열로 변환합니다.

array(2) { 
    ["arr"]=> 
    array(3) { 
    [0]=> 
    string(1) "1" 
    [1]=> 
    string(1) "2" 
    [2]=> 
    string(6) "string" 
    } 
    ["integer_value"]=> 
    string(1) "3" 
} 

정수 값을 처리하는 방법이 있나요 :
$init = parse_ini_file('myConfig.ini',0); 나는 다음과 같은 결과 (var_dump($init);)을 얻을로

arr[] = 1 
arr[] = 2 
arr[] = "string" 
integer_value = 3 

해당 파일을 구문 분석 : 그래서 나는 그와 같은 초기화 파일을 사용 다음 결과를 얻으려면 문자열이 아닌 정수로 반환하십시오.

array(2) { 
    ["arr"]=> 
    array(3) { 
    [0]=> 
    int(1) 
    [1]=> 
    int(2) 
    [2]=> 
    string(6) "string" 
    } 
    ["integer_value"]=> 
    int(3) 
} 
+1

어떤 PHP 버전을 사용하고 있습니까? – Blender

+0

@Blender PHP 버전 5.3.8 –

답변

2

문서 ation은 해당 유형의 옵션 값을 리턴하는 것에 대해서는 언급하지 않습니다. 실제로, 그들은 일반적으로 문자열이어야합니다. (그러나 원하는 경우이 implementation을 확인할 수 있습니다.) 대신 당신은 array_walk_recursive()를 통해, 예를 들어, 간단한 콜백을 적용 할 수

$array = ["arr"=>["0", "1", "2"], "integer_value"=>"3", "float_value"=>"-0.5"]; 
array_walk_recursive($array, function(&$value, $key) 
{ 
    if(is_numeric($value)) 
    { 
     $value = (string)((int)$value)===$value 
      ?(int)$value 
      :(double)$value; 
    } 
}); 

을이 fiddle - 체크.

+0

고맙습니다. 귀하의 스크립트가 마음에 듭니다. 간단하고 잘 만듭니다. :-) –

관련 문제