PHP에서 iconv 사용가능 하여야 합니다.

 

function tostring($text) {
//    return iconv('UTF-16LE', 'UTF-8', chr(hexdec(substr($text[1], 2, 2))).chr(hexdec(substr($text[1], 0, 2))));
    
return iconv('UTF-16LE''UHC'chr(hexdec(substr($text[1], 22))).chr(hexdec(substr($text[1], 02
))));
}
function 
urlutfchr($text
){
    return 
rawurldecode(preg_replace_callback('/%u([[:alnum:]]{4})/''tostring'$text
));
}

 

처리할 문서가 charset euc-kr 일경우 함수 tostring 에서 iconv 2번째인자를 "UHC" 로

 utf8 일경우 "UTF-8"로 지정한다.

 

Ex

$escapeString = "%uC548%uB155%uD558%uC138%uC694";  // 자스에서 "안녕하세요"를 escape 한 문자열

$unEscapeString = urlutfchr($escapeString);

echo $unEscapeString;

 

// 출력결과

// 안녕하세요


PHP개발에 관해서 찾다가..


이라는 글을 찾았습니다.
오호~ PHP에도 Framework라는 개념이 있더군요.
그래서 PHP Framework를 선택하기 위해서 이런저런 자료를 조사 하면서 조사한 내용을 정리 해 볼려고 합니다.

Ruby On Rails의 영향으로 웹 프로그래밍에서 Framework에 대한 관심이 폭발적으로 늘어나게 되고, PHP에서도 Framework에 지원이 활발하게 진행이 되었나 봅니다. 그리고 위의 글에서와 같이 여러개의 PHP Framework가 생겨 나게 되고, 현재 주류를 이루고 있는 Framework는 4개 정도로 압축 되는거 같습니다.

  • Zend Framework
  • CakePHP
  • Code Igniter
  • Symfony

자료를 찾아서 나름대로 특징을 정리 해 봤습니다.



Zend Framework
zend framework

  1. PHP의 핵시 기부자인 Zend Technologies에서 개발.
  2. PHP5 만 지원
  3. 다양한 DB 데이터베이스 추상화
  4. 확장가능한 MVC 모델 지원
  5. HTML 폼 렌더링 및 유효성 검사 지원
  6. 유연한 캐싱 서브 시스템
  7. 엄격한 코드 테스트를 거친 안정된 코드
  8. 국제화 지원
  9. 많은 양의 예제 지원
  10. new BSD 라이센스
  11. 국내 사용자 포럼을 못 찾았음.

CakePHP

  1. PHP4, PHP5 지원
  2. 구조화 된 MVC모델 지원
  3. 데이터베이스 인터랙션과 간략화한 쿼리를 위한 CRUD 가 통합됨
  4. 애플리케이션 스캐폴딩
  5. 보기좋은 맞춤 URL 의 요청 디스패처
  6. 빠르고 유연한 템플릿 기능 (PHP 문법, 각종 헬퍼 포함 )
  7. AJAX, 자바스크립트, HTML 폼을 위한 각종 뷰 헬퍼
  8. 보안, 세션, 리퀘스트 등을 처리하는 컴포넌트
  9. 유연한 뷰 캐시
  10. 유연한 접근 제한 목록
  11. 자료 검사 기능 내장
  12. 국제화 지원
  13. MIT License
  14. CakePHP 한국 사용자 모임.

Code Igniter

  1. PHP4, PHP5 지원
  2. 설치가 간편하다.
  3. 잘 정리된 문서
  4. 확징이 용이하다.
  5. MVC 모델 지원
  6. 간견한 문법
  7. 다른 프레임워크에 비해 빠른 속도
  8. 국제화 지원
  9. BSD 라이센스
  10. CodeIgniter 한국 사용자 모임 : 2009년 7월 19일에 오픈 예정이라고 합니다.
  11. CodeIgniter 한글 메뉴얼


Symfony

  1. PHP5만 지원
  2. 간단한 템플릿과 도우미(Helpers)
  3. 캐시 관리
  4. 기본 골격 (CRUD/Admin generator)
  5. 스마트 URLs (routing policy)
  6. 국제화 지원
  7. 객체모델과 MVC 분리
  8. MIT License
  9. 국내 사용자 포럼을 못 찾았음.

주요 특징들의 위와 같습니다. 여기저기서 찾은 자료들이라서 ^^;; 잘 비교가 되지 않네요..



실행 속도 비교

그리고 다음은 중요한 실행 속도 입니다.
4개의 Framework를 모두 비교한 자료는 찾지를 못했습니다.
먼저 Zend Framework, CakePHP, CodeIgniter를 비교한 결과를 그래프로 그려 봤습니다.


그래프에서 높을 수록 빠른 겁니다. CodeIgniter가 독보적인 선두를 보이고 있습니다. 그리고 Zend Framework와 CakePHP가 뒤를 따르고 있습니다.
그런데 Symfony에 대한 비교가 없어서, CakePHP, Zend Framework, Symfony의 속도를 비교를 검색해 봤는데.. 최근에 비교한 내용을 찾을 수가 없었습니다.
그래서 결국 이상한 나라의 언어(글을 보고 어떤 나라인지 유추를 못 하겠네요 ^^;;;)로 된 페이지를 찾았습니다. 언어는 해독 불가(-_-;;) 이지만, 그래프는 볼 수 있어서.. 첨부 합니다.

위와 같은 그래프가 나오더군요.. 결국 Symfony가 4개의 프레임워크 중에서 가장 늦은 속도를 가지고 있는거 같습니다.



그럼 대세는?
마지막으로 Google Trends의 그래프를 첨부하겠습니다.
검색의 빈도를 통해서 어떤게 관심을 받는지 보는건데,
검색 결과로 봐서는 cakephp가 1위 이지만, 가장 후발 주자로 시작한 codeingniter가 많이 따라잡고 있는 것으로 볼 수 있습니다.



여기 까지 PHP Framework를 소개하는 포스팅을 마칠려고 합니다.
비교는 여기까지이고 PHP의 Framework의 선택은 개발자의 몫이 아닐까 합니다.
  1. eloveelove 2009.07.20 22:08 신고

    자주 방문하지 못하시면 GreatNews 리더기 이용해보세요. rss 리더기 이용하시면 편합니다.
    전문영역의 포스트는 댓글 달기가 어렵네요..

<?
/*
 데이터 엑셀로 출력
*/
header( "Content-type: application/vnd.ms-excel; charset=euc-kr" );
header( "Content-Disposition: attachment; filename=파일명.xls" );
Header("Content-Transfer-Encoding: binary");
Header("Content-Type charset=ks_c_5601-1987");
Header("Pragma: no-cache");
Header("Expires: 0");
header( "Content-Description: PHP4 Generated Data" );



/*
   리스트 조회 코딩
*/
?>


이 방식으로 최대한 간편하게 프로그래밍이 가능하다.

header만 추가시켜주면 끝 ^^

+ Recent posts