- 메인그룹 -

알지로넷 웹호스팅

위리넷 웹호스팅

유용한팁
메인그룹 > 유용한팁
  • 알지보드 첨부파일 및 링크필드에서 원하는 데이터만 가져오기
  • iuman
  • 작성일 : 2009-09-26 08:41:22
  • Homepage : http://iuman.net
    • <?
      //첨부파일유형별 아이콘
      $bd_files=unserialize($bd_files); <---- 이곳!!!!!!!!!!!!!!!!!!
      if(is_array($bd_files) && (count($bd_files) > 0)) {
       foreach($bd_files as $k => $v) {
        if(file_type_chk($v['type'],'image')) {
         $file_type = $skin_url."images/files_icon/gif.gif";
        } else if(file_type_chk($v['type'],'x-zip-compressed')) {
         $file_type = $skin_url."images/files_icon/rar.gif";
        } //if end
        if($file_type) echo "<img src='$file_type' border='0' align='absmiddle' style='margin-left:4px;'>";
       } //foreach end
      } //if end
      ?>
      게시판사용시에는 여러곳에서 해당 게시물의 첨부파일이나 링크주소를 임의로 선택적으로 가져와 사용해야할 경우가 생긴다.
      그런데... 이상하게 알지보드의 첨부파일과 링크데이터 그외 회원정보등... 대부분이 전혀 알수없는 형태로 데이터가 저장되어 있는데 아무리 첨부파일의 실제파일명을가져오고자 해도 단순히 쿼리문만으로는 원하는 정보를 가져오지 못한다는것을 알게될것입니다.
      그래서 게시판 프로그램을 뒤져서 알아냈습니다.

      알지보드의 경우 첨부파일과 링크의 경우 선택적으로 늘여서 사용할수 있겠금 하였는데.
      그것이 가능한 이유가 serialize 를 사용했기 때문입니다.
      이는 배열구조의 데이터를 단순화하여 하나의 문자열로 저장하도록 한것인데.
      그와 같이 변형된 값은 unserialize 를 이용하여 다시 읽어들일수 있습니다.
      관련정보 : http://kr.php.net/manual/kr/function.serialize.php

      그럼 아래게시판 스킨 제작시 첨부된 파일의 파일유형을 알고자 해서 만들었던 부분의
      소스를 보시고 해당기능의 이해를 하시기 바랍니다.



      위 소스에서 이곳!!! 이라고 표시한곳을 기준으로
      $bd_files 값을 위아래로 어떻게 나올지 비교를 하면.
      위에서 보여질 값은 아래와 같은 형태로 보여집니다.{s:4:"name";s:13:"ip_search.gif";s:4:"type";s:9:"image/gif";s:4:"size";i:18040;s:4:"hits";i:3;s:5:"sname";s:16:"00043_172_0.file";}i:1;a:5:{s:4:"name";s:13:"ip_search.zip";s:4:"type";s:28:"application/x-zip-compressed";s:4:"size";i:1269;s:4:"hits";i:4;s:5:"sname";s:16:"00043_626_1.file";}}

      하지만 unserialize(); 함수를 사용한뒤에는 배열값으로 저장이 되어 위 소스에서처럼 $v['type'] 이나 $v['name'] 와 같은 방법으로 원하는 정보를 선택적으로 가져올수가 있게 됩니다.
      바로 이해가 안되시면 그냥 무작정 따라해보세요.

      글로 이해하기보다는 직접하시면 바로 이해되실겁니다. ^^


      원본글 주소는 아래로 오세요~
      http://iuman.net/v14/rg4_board/view.php?bbs_code=rgboard&bd_num=123
    홈페이지다시만들어보자~
    http://iuman.net