array_walk를 이용한 배열 함수


제가 사용하는 class로 만든 일부분 입니다. 그냥 봐보세요 ^^ 전 array_walk(php3,4,5지원/array_map는 php4.0.6이상)를 이용했습니다
아래 여기저기 조합한 것들이라 출처는 저도 기억이 나지 않습니다.
필요에 따라서는 수정한 부분도 있었던것 같고요 ^^

<?php
class Fun {
    /**
     * 배열값들의 앞뒤 공백 없애기
     * @Call $this->trimAll() : 재귀호출(자기자신 호출)
     * @Param &$array {array}
     * @Return $array {array} : &변수이므로 그값을 그대로 가짐(C의 포인터(?))
     */
    function trimAll(&$array) {
          if( is_array($array) ) {
              // class 일경우 array_walk ($array, array($this, 'trimAll'));
            array_walk ($array, array($this, 'trimAll'));
          } else {
            $array = trim($array);
          }
    }
    /**
     * 배열값 전체에 addslashes
     * @Call $this->addslashesAll() : 재귀호출(자기자신 호출)
     * @Param &$array {array}
     * @Return $array {array} : &변수이므로 그값을 그대로 가짐(C의 포인터(?))
     */
    function addslashesAll(&$array) {
        if (get_magic_quotes_gpc() == false){
            if(is_array($array)) {
                array_walk ($array, array($this, 'addslashesAll'));
            } else {
                $array = addslashes($array);
            }
        }
    }
     /**
     * 배열값 전체에 stripslashes
     * @Call $this->stripslashesAll() : 재귀호출(자기자신 호출)
     * @Param &$array {array}
     * @Return $array {array} : &변수이므로 그값을 그대로 가짐(C의 포인터(?))
     */
    function stripslashesAll(&$array) {
        if(is_array($array)) {
            array_walk ($array, array($this, 'stripslashesAll'));
        } else {
              $array = stripslashes($array);
        }
    }
    //EUC-KR(한글 코드페이지[949])을 UTF-8로
    function iconv_utf8All(&$array){
        if( is_array($array) ) {
              // class 일경우 array_walk ($array, array($this, 'trimAll'));
            array_walk ($array, array($this, 'iconv_utf8All'));
          } else {
            //$array = iconv($slang,$tlang,$array);
            if (iconv("UTF-8","UTF-8",$array) == $array) {
                $array = $array;
              } else {
                $array = iconv("CP949","UTF-8",$array);
              }

          }
    }
    //UTF-8을 EUC-KR(한글 코드페이지[949])로
    function iconv_CP949All(&$array){
        if( is_array($array) ) {
              // class 일경우 array_walk ($array, array($this, 'trimAll'));
            array_walk ($array, array($this, 'iconv_CP949All'));
          } else {
            //$array = iconv($slang,$tlang,$array);
            if (iconv("CP949","CP949",$array) == $array) {
                $array = $array;
              } else {
                $array = iconv("UTF-8","CP949",$array);
              }

          }
    }
}
?>

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts