제1장 설치 ... 29 시작해볼까요? ... 32 윈도우 98에 PHP4 설치하기 ... 33 PWS 구하기 ... 33 PWS 설치 ... 34 PWS와 PHP4 연동 ... 36 윈도우 NT 및 2000에서 PHP4 설치하기 ... 40 IIS와 PHP4 연동 ... 46 윈도우에 Apache 설치하기 ... 51 리눅스와 다른 UNIX 시스템에 PHP4 설치하기 ... 52 설치방법 선택 ... 52 RPM 구하기 ... 53 필요한 패키지 ... 54 PHP4와 Apache 연동 ... 56 설치 확인 ... 59 제2장 PHP 프로그램 만들기 ... 63 간단한 PHP 프로그램 예제 ... 66 웹 문서 불러오기 ... 71 클라이언트-서버(Client-Server) ... 72 PHP의 역할 ... 78 서버쪽 스크립팅 ... 80 캐싱(Caching) ... 81 변수(Variables) ... 83 데이터형(Data Types) ... 86 상수(Constants) ... 96 초기화(Initialization) ... 98 데이터형 변환(Conversions) ... 99 환경 변수(Environment Variables) ... 102 요약 ... 103 제3장 클라이언트로부터 데이터 받기 ... 105 웹 폼(Web Forms) ... 107 FORM 태그 ... 108 폼 속성(Attributes) ... 108 HTML 폼 개체와 PHP ... 113 PHP 스크립트에서 폼 입력 정보 사용하기 ... 142 요약 ... 150 제4장 의사 결정 ... 151 조건 및 분기문 ... 153 일상 생활에서 닥치는 분기 상황 ... 154 if문(if Statements) ... 155 다중 조건 - else와 elsief ... 175 Switch문 ... 185 폼 정보값 확인 ... 191 요약 ... 197 제5장 루프와 배열 ... 199 루프(Loops) ... 201 while 루프 ... 202 do while 루프 ... 211 for 루프 ... 216 배열(Arrays) ... 223 배열의 초기화 ... 224 배열 원소 탐색하기 ... 226 배열의 정렬 ... 239 기타 배열 관련 함수 ... 242 다차원 배열 ... 246 배열 응용 사례 ... 247 PHP4에 추가된 새로운 루프 및 배열 기능 ... 252 배열 다중 정렬 ... 252 foreach 루프 ... 253 요약 ... 257 제6장 코드 정리하기 ... 259 코드 재사용의 장점 ... 261 모듈화(Modularization) ... 262 함수(Functions) ... 263 함수 정의 및 호출 ... 263 함수 선택 사용 ... 272 값 전달하기 ... 274 변수의 유효 범위(Scope of Variables) ... 280 전역 변수와 지역 변수(Global and Local Variables) ... 281 함수의 중첩(Nesting) ... 289 재귀(Recursion) ... 292 삽입 파일(Include Files) ... 295 삽입 파일의 용도 ... 299 요약 ... 302 제7장 오류 방지 및 처리 ... 305 PHP의 오류 처리 ... 308 보안상 민감한 정보의 노출 ... 308 보기 흉한 웹 문서 ... 308 보이지 않는 오류 메시지 ... 309 오류의 종류 ... 309 구문 오류(Syntax Errors) ... 310 논리적 오류 ... 313 올바른 코딩 습관 ... 319 코드 들여쓰기를 하세요 ... 320 코드에 주석을 다세요 ... 320 함수를 사용하세요 ... 322 삽입 파일을 사용하세요 ... 323 변수에 의미있는 이름을 주세요 ... 324 일부러 오류를 내보자 ... 325 폼 데이터 확인 2 ... 326 사용자 입력받기 ... 329 정규 표현식(Regular Expressions) ... 329 패턴(Patterns) ... 330 특수 문자 ... 332 PHP 스크립트 디버깅(Debugging PHP Script) ... 347 echo문을 활용하세요 ... 347 HTML 소스를 확인하세요 ... 348 오류 메시지 출력 막기 ... 348 오류 로그 확인 ... 349 PHP 디버깅은 맨땅에 헤딩하기 ... 350 요약 ... 350 제8장 클라이언트와 작업하기 ... 353 무상태 프로토콜(Stateless Protocol)을 최대한 활용하기 ... 356 사용자와 대화하기 - HTTP, HTML, PHP 및 상호 작용 ... 357 PHP4 내장 세션 ... 359 '직접 구현해보는' 데이터 보존 기법 ... 360 감춰진 폼 필드 활용하기 ... 360 쿼리 문자열(Query Strings) ... 370 쿠키(Cookies) ... 380 세션(Sessions) ... 389 PHP4 세션 ... 390 요약 ... 395 제9장 객체 ... 399 객체 지향 기술 ... 402 가정의된 클래스 사용하기 ... 404 계산기에 메모리를 달자 ... 412 메소드 인자 전달 ... 416 클래스 직접 만들기 ... 420 밑바닥부터 시작하기 ... 421 기존 클래스의 확장 ... 424 유용한 객체 ... 429 요약 ... 434 제10장 파일 및 디렉토리 작업 ... 435 파일 작업 ... 438 파일 열고 닫기 ... 439 파일에서 데이터 읽고 쓰기 ... 442 파일에 대한 정보 얻기 ... 458 파일에서 이름과 경로 분리하기 ... 468 파일 복사, 삭제 및 이름 바꾸기 ... 469 텍스트 에디터 만들기 ... 472 디렉토리 작업 ... 483 기타 디렉토리 함수 ... 484 디렉토리 구조 탐색하기(Traversing) ... 486 디렉토리 탐색기 만들기 ... 488 파일 업로드 ... 494 종합 예제 - 웹 텍스트 에디터 ... 498 관련 자료 ... 506 요약 ... 506 제11장 PHP와 데이터베이스 연동 ... 509 데이터베이스 ... 511 데이터 모델(Data Models) ... 512 데이터베이스 아키텍처(Database Architecture) ... 515 왜 MySQL인가? ... 517 MySQL 설치 ... 518 SQL 소개 ... 523 MySQL 맛보기 ... 530 mysql 클라이언트 실행하기 ... 531 사용할 데이터베이스 선택하기 ... 531 데이터베이스 데이터 들여다보기 ... 532 데이터베이스 데이터 다루기 ... 534 GRANT 및 REVOKE 명령어 ... 536 마무리 ... 538 PHP를 이용한 MySQL 연동 ... 539 기본적인 데이터베이스 연결 함수 ... 539 MySQL에서 데이터베이스 및 테이블 만들기 ... 549 PHP를 사용해 예제 데이터베이스와 테이블 만들기 ... 554 테이블 구조 변경 ... 559 테이블에 데이터 삽입하기 ... 561 관련 자료 ... 565 요약 ... 566 제12장 PHP로 MySQL 데이터 불러오기 ... 567 PHP를 사용해 데이터 불러오기 ... 569 데이터를 불러오는 SQL문 ... 573 서버 함수(Server Functions) ... 573 필드 불러오기 ... 574 요약 정보 얻기 ... 581 복잡한 쿼리 ... 582 종합 예제 ... 587 레코드 표시기 사용하기 ... 599 관련 자료 ... 600 요약 ... 600 제13장 PHP로 MySQL에서 데이터 다루기 ... 603 PHP로 레코드 추가하기 ... 605 테이블에서 레코드 갱신 및 삭제하기 ... 608 날짜 및 시각 필드 활용하기 ... 611 데이터베이스 테이블 정보 얻기 ... 616 회원 등록 스크립트 만들기 ... 627 액세스 로그 스크립트 만들기 ... 635 사용자 관리자 만들기 ... 647 관련 자료 ... 659 요약 ... 659 제14장 XML ... 661 XML이 뭐지? ... 63 XML 문서 구조 ... 666 올바른 형식의 XML(Well-Formed XML) ... 667 DTD ... 671 이벤트 기반 파싱(Event Driven Parsing) ... 673 예제 파일 파싱하기 ... 674 외부 파일 파싱하기 ... 681 요약 ... 687 제15장 E-mail 처리 ... 689 PHP에서 이메일 보내기 ... 691 이메일 구조 ... 694 첨부 파일 다루기 ... 703 이메일(E-mail) 구조 다시 보기 ... 704 이메일에 파일 첨부하기 ... 709 뉴스레터 메일링 리스트 관리자 ... 719 관련 자료 ... 741 요약 ... 741 제16장 그래픽 만들기 ... 743 기초 닦기 ... 745 이미지 만들기 ... 746 이미지에 그림 그리기 ... 748 종합 예제 ... 754 실용 예제 ... 758 대화식 지도 ... 758 사전 준비 ... 759 프레임 만들기 ... 766 기능 향상 ... 773 상점 정보 출력하기 ... 777 고급 그래픽 처리 기법 ... 781 관광 지도 ... 781 팔레트 한계 ... 786 요약 ... 788 제17장 응용 사례 : URL디렉토리 관리자 ... 789 URL 디렉토리 관리자 소개 ... 791 디렉토리 관리자 설계 ... 792 사용자에게 필요한 기능 ... 792 사용자 인터페이스 ... 794 데이터 저장 방법 ... 795 설계 과정에서 고려해야 할 추가적인 내용 ... 801 코드 구조 ... 801 코드 구현 ... 805 공통 코드 - php_directory.inc ... 805 사용자 코드 - php_directory.php ... 853 관리자 코드 - dir_manage.php ... 854 사용자 의견 수렴 ... 880 요약 ... 880 부록 A ODBC ... 883 부록 B PHP 함수 ... 901 찾아보기 ... 965