PHP ... 에 해당되는 글 7건
2008/11/06 18:46
[PHP]
2008/11/06 18:46 2008/11/06 18:46


모르는 사이에 PHP 인기 프레임워크인 CodeIgniter 1.7.0으로 업그레이드 됐군요 (만세~)
날짜를 확인해보니 반년 정도지만 거의 1년은 기다린 같습니다. 버그 수정은 물론이고 Form 관련 함수 들이 많이 추가 것으로 보입니다.

코드이그니터로 개발하여 운영중인 사이트들를 1.7.0 버전으로 마이그레이션 해봐야겠네요

Release Date: October 23, 2008
SVN Revision: 1541

  • Libraries
    • 새로운 Form 검증 함수 추가. 필드명과 간단한 규칙으로 설정가능하며 필드명들의 배열을 지원한다. 검증 규칙들을 설정파일에 그룹화 하여 저장 가능하고view파일에서 사용하는 helper함수를 추가 있다. 참고로 기존의 검증 함수는 사라질 예정(deprecated)이니 주의바람 기존검증 함수는 언젠가 library폴더에서 사라질 예정이고 그때까지는 기존에 작성된 어플리케이션은 동작하겠지만 새로운 버전으로 마이그레이션 것을 권장함
    • 사용자정의데이터을 데이터베이스에 저장하고 불러 있도록 Session 클래스가 업데이트. 기존 쿠키session보다 향상 되어 많은 세션 데이터를 저장 하는 것이 가능하다. (데이터베이스에 세션 데이터를 저장하는 것이 가능)
    • 기본 "libraries"폴더나 어플리케이션 "libraries"폴더의 서브폴더에 라이브러리 저장이 가능해짐. 세부 정보는 Loader 클래스에서 확인
    • $this->load->library 함수를 이용하여서 library객체에 고유한 변수명을 부여하는 것이 가능해짐. 세부 정보는 Loader 클래스에서 확인
    • controller클래스에 다중 데이터베이스접속을 지원하는Profiler class 메소드 추가
    • "auto typography"기능 개선과 Typograph 클래스라는 독립 파일로 이동
    • Xss_clean()함수의 Image/file테스트 오류 감소되었으며 성능과 정확도 개선됨.
    • Parser 클래스 개선. (to allow multiple calls to the parse() function. The output of each is appended in the output.)
    • File Upload Class에서 파일명 글자수 제한을 위한 Max_filename option추가.
    • Output 클래스에 set_status_header() 함수 추가.
    • Pagination 클래스에서 "처음으로(First)"링크가 페이지일 때만 출력되도록 변경
    • 멀티바이트언어상에서도 문자열크기가 계산되도록 Form검증 클래스내부에서 mb_strlen 지원.
  • Database
    • 컬럼명과 테이블명에 hostname.database.table.column같은 풀패스를 지원하도록 개선. 별칭(Alias) 핸들링도 개선 .
    • Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.
    • 액티브레코드에 "update"와 "delete" 캐쉬 기능을 추가.
    • 잠재적인 SQL에러나 SQL인젝션공격을 방지하기위해 PHP 같은 제어문자제거 메커니즘이 없는 DB-Driver(mssql, oci8, odbc) escapte_str() 함수 안에 출력되지 않는 제어문자를 제거기능 추가.
    • MySQL, MySQLi, MSMSQL데이터베이스 드라이버에 포트지원.
    • Added driver name variable in each DB driver, based on bug report #4436.
  • Helpers
    • Form 헬퍼에 POST데이터를 form 세팅하거나 가져 있도록 새로운 설정변수 추가. 고유의 것을 사용하거나 새로운 Form 검증 함수와 사용된다.
    • URL헬퍼에 current_url() 함수 추가.
    • Altered auto_link() in the URL helper so that email addresses with "+" included will be linked.
    • Added meta() function to HTML helper.
    • Improved accuracy of calculations in Number helper.
    • Removed added newlines ("\n") from most form and html helper functions.
    • Tightened up validation in the Date helper function human_to_unix(), and eliminated the POSIX regex.
    • Updated Date helper to match the world's current time zones and offsets.
    • Modified url_title() in the URL helper to remove characters and digits that are part of character entities, to allow dashes, underscores, and periods regardless of the $separator, and to allow uppercase characters.
    • Added support for arbitrary attributes in anchor_popup() of the URL helper.
  • Other Changes
    • Added PHP Style Guide to docs.
    • Added sanitization in xss_clean() for a deprecated HTML tag that could be abused in user input in Internet Explorer.
    • Added a few openxml document mime types, and an additional mobile agent to mimes.php and user_agents.php respectively.
    • Added a file lock check during caching, before trying to write to the file.
    • Modified Cookie key cleaning to unset a few troublesome key names that can be present in certain environments, preventing CI from halting execution.
    • Changed the output of the profiler to use style attribute rather than clear, and added the id "codeigniter_profiler" to the container div.

    http://codeigniter.com/news/codeigniter_170_released/

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://blog.phpdic.com/trackback/36
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
2008/11/06 02:05
[PHP]
2008/11/06 02:05 2008/11/06 02:05




제목으로 예상하셨겠지만 Johnmaccain.com 은 MS Windows와 .NET으로 이루어져있습니다.
반면에 barackobama.com은 Linux와 PHP로 돌아가고 있지요

http://www.boringguys.com/2008/11/05/mysql-and-php-help-obama-become-president-of-the-united-states/

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://blog.phpdic.com/trackback/35
달을파는아이 | 2008/11/06 10:51 | PERMALINK | EDIT/DEL | REPLY
왠지 의미심장한데요? ㅋㅋ
웹프로그램계에도 드디어 새로운 변화의 시대가 오는걸까요?
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
2008/04/14 13:51
[PHP]
2008/04/14 13:51 2008/04/14 13:51
사용자 삽입 이미지

PHP에서 RSS를 읽기위한 여러 라이브러리가 있습니다. Magpie 라이브러리를 많이 사용하지요.

Magpie는 많이 사용하니 제가 오늘 소개해 드릴것은 SimplePie입니다.

http://simplepie.org/

1개의 파일로 간편하게 구성되어있어 통합이 편리하며

여러 프레임웍을 위한 예제가 많이 존재하기 때문에 사용도 간편합니다.

  • 기본 인코딩은 utf-8 상태이기 때문에 한글이 깨진다면 euc-kr을 이용해보세요

    $this->simplepie->set_output_encoding('euc-kr');
  • 이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/30
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret
    2008/02/22 16:03
    [PHP]
    2008/02/22 16:03 2008/02/22 16:03

    사용자 삽입 이미지

    네이버에서 서비스하고 있는 CAPTCHA

    Form 필드를 파악하여 자동으로 채워줘서 게시물을 올리거나 대량의 허위 가입을 하는등의 행위를 막기위해 CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 자동가입방지)라는 시스템을 도입하고있습니다. 사용자가 인간인지 로봇인지 간단한 질문을 내서 확인하는것이지요.

    막는자가 있으면 언제나 뚫는자도 있는법 처음 간단한 이미지 문자를 입력하는 형태였던것이 간단한 4칙연산이 추가되는 등 CAPTCHA 시스템도 계속 진화하고 있습니다. 최근에는 CAPTCHA 방법을 좀더 생산적인 프로젝트에 응용하는 reCAPTCHA 프로젝트가 생기는 등 간단한 사용자확인에서 좀 더 새로운 발전 방향을 보여주고 있습니다.

    사용자 삽입 이미지
     

    *reCAPTCHA project - 옛문서중 OCR로 판독 할 수 없는 문자를 단어단위로 잘라내 사용자에게 보여주고 입력받는 클라우드 소싱(Cloud Sourcing)을 활용한 프로젝트. http://recaptcha.net/


    PHP를 활용한 CAPTCHA중 훌륭한 두가지를 공개합니다.

    사용자 삽입 이미지

    Flickr 파일을 통한 captcha 시스템 Flickcha
    http://www.eeenmachine.com/flickcha-php4

    두번째로 소개할것은 Josh Storz이 소개한 애니메이션 CAPTCHA입니다.

    사용자 삽입 이미지

    http://www.querythe.net/Animated-Gif-Captcha/

    GIF파일을 애니메이션 형태로 합쳐주는 GIFEncoder클래스를 활용하였고 포함된 GIF를 한글 이미지 파일로 변경하는것 만으로도 쉽게 한글화 적용이 가능합니다. 예제는 이곳 에서 확인이 가능합니다.

    문자를 이리저리 비트는것보다 간단하고 개인적으로 마음에 드네요.. 익숙하지 않아서 아직 좀 불편해보이긴 하지만 말입니다.

    언제 CAPTCHA에 대해서 한번 싹 정리하고 싶군요~

    이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/20
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret
    2008/01/11 13:42
    [PHP]
    2008/01/11 13:42 2008/01/11 13:42
    사용자 삽입 이미지

    YAML이 실용주의프로그래머나 rails에서 사용하면서 많이 알려지긴 했지만 짧게 소개하면 YAML은 XML보다 훨씬 읽기 쉽도록 만들어진 언어입니다.
    XML도 초기 도입 될 때는 텍스트 형태로 데이터가 직관적이고 훌륭하다고들 평가 했지만 사실 왓더헬 수준이었죠... 다들 무슨 최면이 걸렸는지.. 실용주의프로그래머에 나오는 "일반텍스트의힘" 과 XML은 약간 거리가 있습니다.

    YAML의 디자인 목표는 다음과 같습니다.

    1. YAML은 사람이 쉽게 읽는다.
    2. YAML은 재빠른 언어의 원시 데이터 구조와 일치한다.
    3. YAML 자료는 프로그래밍 언어 간에 이식이 가능하다.
    4. YAML은 일반적인 도구를 지원하기 위해 일관된 모형을 가진다.
    5. YAML은 한쪽을 통과하는 처리를 지원한다.
    6. YAML 은 표현이 풍부하고 확장 가능하다.
    7. YAML은 구현하고 쓰기 쉽다.

      From 세레님의 YAML Spec 번역본에서 발췌
    실제로 사용예를 보면 다음과 같은 형태로 사용 됩니다.

    development:
      adapter:  mysql
      socket:   /tmp/mysql.sock
      encoding: utf8
      database: phpdic_development
      username: phpdic
      password: pwpwpw

    YAML 사용예


    위의 예보다 실제 사용하면 좀더 복잡해지는 경우도 있지만 XML보다 간단하지요?
    당연히 데이터를 표현하기에도 XML보다 훨씬 나을겁니다.
    게임업계에서도 XML보단 YAML쪽을 검토했으면 좋겠군요 기획자에게 사랑받을텐데 말입니다.

    어쨌든 YAML의 간결함과 효용성에 PHP에서 YAML을 사용하려는 시도는 spycsyck로 공개되었고 이런 라이브러리들 중에서 Horde/Yaml 이 가장 좋다고 알려져있습니다.

    마침 Horde/Yaml이 지난 1월 7일 정식버전을 발표하였으며 YAML을 검토하셨던 분들은 사용하셔도 될것 같네요...
    개인 개발자 분들은 그냥 .php 파일에 배열을 선언하고 설정을 잡겠지만 운영팀에게 배포할 데이터 파일이 필요한 개발자들에게는 좋은 선택이 될 것같습니다. 운영 매뉴얼을 훨씬 얇게 작성 할 수 있으니까요

    [Horde/Yaml 다운로드]



    이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/16
    골빈해커 | 2008/01/11 14:39 | PERMALINK | EDIT/DEL | REPLY
    오우.. 굳입니다.
    데이터 전송에는 XML 보다는 YAML 이 낫지요.
    저도 사용은 하고 있지만, 왜 굳이 XML 을 사용하는지 모르겠어요..ㅜ,.ㅜ;; (많이들 쓰니까 어쩔 수 없이 쓰는거겠죠.. 호환을 위해서..)
    세레 | 2008/01/12 15:54 | PERMALINK | EDIT/DEL | REPLY
    트랙백 감사합니다. ^^
    데이터를 교환하는 경계가 정해져 있다면, YAML이 XML보다 더 낫다고 생각해요.
    XML을 파싱하는 일보다, JSON으로 받으면 쉽게 사용할 수 있는 점이 선호되더라고요.
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret
    2008/01/08 11:42
    [PHP]
    2008/01/08 11:42 2008/01/08 11:42
    사용자 삽입 이미지
    Ryon Sherman 은 Google Chart 를 생성 할 수 있는  PHP Class를 공개하였습니다.

    http://www.phpclasses.org/browse/package/4299.html

    LGPL 라이선스지만 참고하시면 좋을것 같군요

    해당 클래스를 사용하면 다음과 같은 차트 생성이 가능합니다.


     <?php
       
    //Include Class
       
    require_once('GoogleGraph.php'
    );

       
    //Create Object
       
    $graph = new GoogleGraph
    ();
        
       
    //Graph
       
    $graph->Graph->setType('bar'
    );
       
    $graph->Graph->setSubtype('vertical_grouped'
    );
       
    $graph->Graph->setSize(500, 500
    );
       
    $graph->Graph->setAxis();
    //no arguments means all on
       
    $graph->Graph->setGridLines(20, 50, 1, 0
    );
        
       
    //Title
       
    $graph->Graph->setTitle('This is a test', '#FF0000', 50
    );    
        
       
    //Background
       
    $graph->Graph->addFill('chart', '#000000', 'solid'
    );
       
    $graph->Graph->addFill('background', '#FFFFFF', 'gradient', '#000000', 90, 0.5, 0
    );
        
       
    //Axis Labels
       
    $graph->Graph->addAxisLabel(array('Jan', 'July', 'Jan', 'July', 'Jan'
    ));
       
    $graph->Graph->addAxisLabel(array('0','100'
    ));
       
    $graph->Graph->addAxisLabel(array('A', 'B', 'C'
    ));
       
    $graph->Graph->addAxisLabel(array('2005', '2006', '2007'
    ));    
       
    $graph->Graph->addLabelPosition(array(1, 10, 37, 75
    ));
       
    $graph->Graph->addLabelPosition(array(2, 0, 1, 2, 4
    ));        
       
    $graph->Graph->setAxisRange(array(0, 200, 300, 400
    ));
       
    $graph->Graph->addAxisStyle(array(0, '#0000dd', 10
    ));
       
    $graph->Graph->addAxisStyle(array(3, '#0000dd', 12, 1
    ));    
        
       
    //Lines
       
    $graph->Graph->setLineColors(array('#FF0000', '#00FF00', '#0000FF'
    ));
       
    $graph->Graph->addLineStyle(array(3, 6, 3
    ));
       
    $graph->Graph->addLineStyle(array(1, 1, 0
    ));
        
       
    //Shapes
       
    $graph->Graph->addShapeMarker(array('cross', '#FF0000', 0, 1, 20
    ));
       
    $graph->Graph->addShapeMarker(array('diamond', '#80C65A', 0, 2, 20
    ));    
        
       
    //Data    
       
    $graph->Data->addData(array(5, 10, 58, 95
    ));
       
    $graph->Data->addData(array(5, 30, 8, 63
    ));
       
    $graph->Data->addData(array(3, 17, 90, 4
    ));
        
       
    //Output Graph
       
    $graph->printGraph
    ();
    ?>
    이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/15
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret
    2007/12/26 11:31
    [PHP]
    2007/12/26 11:31 2007/12/26 11:31
    사용자 삽입 이미지사용자 삽입 이미지


    개인적으로 CodeIgniter는 PHP로 rails를 흉내내려는 php프레임워크중에서 가장 심플하면서도 강력한 프레임워크 라고 생각합니다. 여기에 Zend 프레임워크까지 붙일수 있다면 금상첨화겠지요? 그 방법을 소개한 페이지가 있어 소개합니다.

    Daniel Vecchiato 는 유명한 PHP프레임워크인 Code Igniter에서 Zendframework의 라이브러리를 사용하게 해주는 튜토리얼을 공개 했습니다.

    http://www.4webby.com/freakauth/tutorials/using-zend-framework-components-in-code-igniter

    기타 php프레임워크 중에서 코드이그니터 가 아직 인지도가 많이 부족한 편인데 한국에서도 널리 알려졌으면 좋겠네요...
    이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/13
    WOWpc | 2008/07/18 13:03 | PERMALINK | EDIT/DEL | REPLY
    우웃.. CI에 ZendFramework를 추가로 붙이다니.... 허허 나중에 시간나면 해봐야겠네요 ^^;
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret
    2007/12/20 16:04
    [PHP]
    2007/12/20 16:04 2007/12/20 16:04
    사용자 삽입 이미지


    다행히도(?) Delphi for PHP의 다음 버전을 준비하고 있나봅니다.

    코드기어(예전 볼랜드)사를 좋아하고 항상 응원하고는 있지만 Delphi for PHP는 좀 걱정이 되는 라인업입니다.

    어쨌든 새로운 버전을 준비하고 있고 새로운 메이저 업그레이드의 베타테스터를 모집한다고 하니 관심있는 분들은 지원해보세요~ 많은 관심 받을수 있으면 좋겠군요


    관련 URL은 이쪽입니다.
    http://www.surveymonkey.com/s.aspx?sm=AsT7NAxv4zC5WYKIaK9pRw_3d_3d
    이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/8
    Tracked from 봄 詩 | 2007/12/27 18:49 | DEL
    온라인 비디오가 1였다: http://www.phpres.com/help/manual/delphi4php_demo/hello_world.htm 온라인 비디오가 2였다: http://www.phpres.com/help/manual/delphi4php_demo/windows_demo.htm 온라인 비디오가 3였다: http://www.phpres.com/help/manual/delphi4php_demo/templates.htm 온라인 비디오가 4였다:...
    Tracked from Happy House | 2008/07/24 12:42 | DEL
    온라인 비디오가 1였다: http://www.phpres.com/help/manual/delphi4php_demo/hello_world.htm 온라인 비디오가 2였다: http://www.phpres.com/help/manual/delphi4php_demo/windows_demo.htm 온라인 비디오가 3였다: http://www.phpres.com/help/manual/delphi4php_demo/templates.htm 온라인 비디오가 4였다:..
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret
    2007/12/18 10:37
    [PHP]
    2007/12/18 10:37 2007/12/18 10:37
    Mysql은 phpMyAdmin을 사용합니다. PostreSQL(이하 pgsql)에는 phpPgAdmin이 있지요

    사용자 삽입 이미지
    사용자 삽입 이미지
    사용자 삽입 이미지


    솥아 님의 pgsql에 대한 예찬론을 보시려면
    http://nonun.tistory.com/entry/PostgreSQL-%EC%98%88%EC%B0%AC%EB%A1%A0

    phpPgAdmin 4.2는 여기서 받을수 있습니다.
    http://phppgadmin.sourceforge.net/?page=download

    이올린에 북마크하기(0) 이올린에 추천하기(0)
    Trackback Address :: http://blog.phpdic.com/trackback/7
    [로그인][오픈아이디란?]
    Name
    Password
    Homepage

    Secret