목차
Part 1. PHP 실습 환경 만들기
   1장 웹 프로그램의 이해 ... 25
      1.1 인터넷, 서버와 클라이언트 ... 26
        인터넷의 이해 ... 26
        서버와 클라이언트 ... 29
      1.2 웹 프로그램 ... 31
        웹 프로그램과 CGI ... 31
        웹 디자이너와 웹 프로그래머 ... 33
      1.3 PHP란? ... 34
        PHP의 소개 ... 34
        PHP와 HTML, 그리고 Javascript ... 35
   2장 웹 서버 환경 만들기 ... 37
      2.1 APM이란? ... 38
        Apache ... 38
        MySQL ... 39
        APM 연동의 이해 ... 41
      2.2 APM의 설치 ... 43
        APM 쉽게 설치하기 ... 43
        APM 설정 변경 ... 51
        APM 실행 테스트 ... 58
Part 2. PHP 기본기 익히기
   3장 PHP 기본 문법 ... 67
      3.1 PHP 프로그램 작성 준비 ... 68
        PHP 프로그램 작성도구 ... 68
        PHP의 확장자 ... 69
        필자의 잔소리 ... 71
      3.2 PHP의 선언 ... 72
        PHP의 선언 ... 72
        PHP에서의 출력문 ... 76
      3.3 PHP에서의 HTML 사용 ... 83
        HTML 소스 삽입 방법 ... 83
   4장 변수와 상수 ... 87
      4.1 변수 ... 88
        변수란? ... 88
        정수형 변수 ... 91
        실수형 변수 ... 91
        문자형 변수 ... 92
        변수형의 변환 ... 93
        가변 변수 ... 97
        변수의 연결과 구분 ... 98
      4.2 상수 ... 104
        상수란? ... 104
        상수의 종류 ... 104
        상수의 정의 ... 106
      4.3 환경변수 ... 108
        Apache 환경변수 ... 108
        PHP 환경변수 ... 111
   5장 함수 ... 115
      5.1 함수란? ... 116
        함수의 뜻 ... 116
        PHP에서의 함수 ... 116
      5.2 함수 정의하기 ... 121
        함수 정의의 목적 ... 121
        정의된 함수 확인하기 ... 122
        함수 정의하기 ... 123
      5.3 전역변수와 지역변수 ... 128
        전역변수와 지역변수 ... 128
        전역변수 만들기 ... 131
      5.4 Static 변수 ... 133
      5.5 함수의 에러 메시지 숨기기 ... 138
        의 사용 ... 138
        or (또는
) ... 140
   6장 〈form〉 태그의 활용 ... 141
      6.1 〈form〉 태그의 기본 문법 ... 142
        〈form〉 태그 ... 142
        〈input〉 태그 ... 146
        text ... 146
password ... 119
        checkbox ... 150
        radio ... 151
        hidden ... 152
button ... 152
submit ... 154
        image ... 157
        reset ... 158
        〈input〉 태그 종합 예제 ... 159
        〈select〉 태그 ... 164
        〈textarea〉 태그 ... 167
      6.2 get과 post ... 169
        get과 post 방식의 특징 ... 169
        get과 post 구분하기 ... 172
   7장 꼭 알아야 할 기본기 ... 177
      7.1 〈table〉 태그 테크닉 ... 178
padding 조정하기 ... 178
        테이블 가로 폭 맞추기 ... 180
        셀 가로폭 정리하기 ... 182
      7.2 페이지 이동 방법 ... 192
        header ... 192
        location ... 194
        〈meta〉 ... 195
Part 3. PHP 문법 익히기
   8장 문자열 가공하기 ... 199
      8.1 문자열 관련 함수 ... 200
        문자열의 길이 (strlen) ... 200
        문자열 뒤집기 (strrev) ... 201
        두 개의 문자열을 비교 (strcmp) ... 202
        대문자로 바꾸기 (strtoupper) ... 203
        소문자로 바꾸기 (strtolower) ... 204
        문자열의 공백 제거 (ltrim, chop, trim) ... 204
        ASCII 코드 관련 함수 (chr, ord) ... 206
        특수문자에 \ 붙이기 (addslashes) ... 208
        \n을 〈br〉로 변환 (nl2br) ... 209
        문자열에서 태그를 제거 (strip_tags) ... 213
        문자열의 태그를 그대로 출력 (htmlspecialchars) ... 215
        문자열 추출하기 (substr) ... 216
        문자열 찾기 (strstr) ... 219
        문자열 치환 (str_replace) ... 220
   9장 연산하기 ... 223
      9.1 연산자 ... 224
        산술 연산자 ... 224
        증감 연산자 ... 226
      9.2 계산기 만들기 ... 229
        계산 폼 만들기 ... 229
        계산 결과 출력하기 ... 229
   10장 조건문 ... 231
      10.1 비교 연산 ... 232
        비교 연산자 ... 232
      10.2 논리 연산 ... 233
        논리 연산자 ... 233
        논리 연산의 우선순위 ... 235
      10.3 if 문 ... 237
        if ... 237
        else ... 239
        elseif (또는 else if) ... 240
      10.4 switch ... 241
switch ... 241
      10.5 입력받은 값 체크하기 ... 244
        PHP로 체크하기 ... 244
        javascript로 체크하기 ... 250
   11장 반복문 ... 261
      11.1 for 문 ... 262
        for 문 ... 262
        1부터 10000까지의 합 ... 263
        for 속의 for ... 265
        while 문 ... 268
        1부터 10000까지의 합 ... 269
        do while ... 270
      11.2 break와 continue ... 272
break ... 272
        continue ... 273
   12장 include와 require ... 275
      12.1 include ... 276
        include의 활용 ... 276
      12.2 require ... 281
        include와 require의 차이점 ... 281
   13장 배열 ... 283
      13.1 배열의 정의 ... 285
        원소 대입으로 정의하기 ... 285
        array 함수로 정의하기 ... 288
        이차원 배열 ... 289
        연관 배열 ... 293
      13.2 배열 값의 출력 ... 296
        배열의 크기 (sizeof, count) ... 296
        for를 이용한 배열 값 출력 ... 296
      13.3 배열 관련 함수 ... 301
        배열의 원소 추가 (array_unshift, array_push) ... 301
        배열의 원소 삭제 (array_shift, array_pop) ... 303
        배열의 원소 추출 (array_slice) ... 305
        배열의 원소 치환 (array_splice) ... 307
        배열 합치기 (array_merge) ... 310
        연관 배열의 모든 키 이름 추출 (array_keys) ... 311
        연관 배열의 모든 값 추출 (array_values) ... 312
        문자열을 배열로 만들기 (explode) ... 313
        배열을 문자열로 만들기 (implode) ... 315
   14장 수학 ... 317
      14.1 소수 ... 318
        반올림 (round) ... 318
        올림 (ceil) ... 319
        버림 (floor) ... 319
        거듭제곱 (pow) ... 320
      14.2 제곱 ... 320
        제곱근 (sqrt) ... 320
      14.3 삼각함수 ... 321
sin, cos, tan ... 321
        asin, acos, atan ... 322
      14.4 최대값과 최소값 ... 323
        최대 값 (max) ... 323
        최소 값 (min) ... 324
      14.5 기타 수학 관련 함수 ... 326
        진수의 변환 (base_convert) ... 326
        절대 값 (abs) ... 326
        숫자의 형태 변환 (number_format) ... 327
   15장 시간 ... 331
      15.1 시간 관련 함수 ... 332
        date ... 332
        time ... 336
        microtime ... 337
        mktime ... 338
        checkdate ... 340
      15.2 시간의 계산 ... 341
        특정일로부터의 날짜 ... 341
        절차 ... 341
        특정일까지의 날짜 ... 345
   16장 난수 ... 347
      16.1 난수의 발생 ... 348
        rand, srand, getrandmax ... 348
        mt_rand, mt_srand, mt_getrandmax ... 350
      16.2 랜덤 이미지의 구현 ... 352
   17장 암호화 ... 355
      17.1 암호화 함수 ... 356
        crypt ... 356
        md5 ... 359
   18장 cookie와 session ... 361
      18.1 인증이란? ... 362
      18.2 cookie ... 363
        쿠키란? ... 363
        쿠키 굽기 ... 363
        쿠키 값의 체크 ... 367
        쿠키 값의 삭제 ... 370
        쿠키의 문제점 ... 371
      18.3 쿠키 카운터 만들기 ... 372
      18.4 회원 로그인 만들기 ... 375
        로그인 ... 375
      18.5 session ... 383
        세션이란? ... 383
php.ini의 세션 관련 설정 ... 384
        Session ... 384
        세션의 시작 (session_start) ... 385
        세션의 등록 (session_register) ... 385
        세션의 삭제 (session_unregister) ... 389
        세션의 폐기 (session_destroy) ... 390
      18.6 세션 카운터 만들기 ... 392
   19장 정규표현식 ... 395
      19.1 정규표현식이란? ... 396
        문자열이 포함되어 있는가? (ereg, eregi) ... 396
        시작과 끝 ( ^, $ ) ... 397
        문자의 반복 ( *, +, ? ) ... 399
        반복 횟수의 지정 ( { } ) ... 400
        문자열의 지정 ( ( ) ) ... 401
        OR 연산 ( | ) ... 402
        어떤 한 문자 ( . ) ... 402
        사용 가능한 문자열의 지정 ( [ ] ) ... 404
        사용 불가능한 문자열의 지정 ( [^] ) ... 405
        특수문자의 사용 ... 406
      19.2 이메일 주소와 홈페이지 주소 체크하기 ... 408
        이메일 주소 체크하기 ... 408
        홈페이지 주소 체크하기 ... 410
      19.3 문자열 치환하기 ... 413
        ereg_replace, eregi_replace ... 413
        이메일 주소와 홈페이지 주소의 자동 링크 ... 414
      19.4 문자열을 배열로 만들기(split) ... 416
   20장 파일과 디렉토리 ... 417
      20.1 퍼미션 ... 418
      20.2 디렉토리 관리 ... 424
        디렉토리의 생성과 삭제 ... 424
        디렉토리 열기 ... 426
      20.3 파일 관리 ... 429
        파일 정보 꺼내기 ... 429
stat ... 429
        filesize ... 431
        fileatime ... 431
        filemtime ... 432
        fileperms ... 432
        file_exists ... 433
        파일 열기 ... 434
        파일 읽기 ... 440
        file ... 440
        fgetc ... 441
        fgets ... 442
        fgetss ... 442
        fread ... 443
        파일 쓰기 ... 445
        파일의 복사와 삭제 ... 447
        copy ... 447
        unlink ... 447
      20.4 파일 카운터 만들기 ... 448
      20.5 현재 접속자 수 체크하기 ... 452
      20.6 파일 업로드하기 ... 461
        디렉토리와 퍼미션 ... 461
        PHP 설정 변경하기 ... 461
        파일 업로드 로직 ... 462
        파일 업로드 소스 ... 462
        주의 사항 ... 467
   21장 서버푸시 ... 471
      21.1 서버푸시의 구현 ... 472
   22장 메일 ... 475
      22.1 메일 보내기 ... 476
        메일 서버의 설정 ... 476
        메일 헤더 ... 478
        메일 보내기 (mail) ... 479
        SMTP 가상 서버의 설치 ... 480
   23장 이미지 다루기(GD) ... 487
      23.1 GD ... 488
      23.2 이미지 사이즈(GetImageSize) ... 489
      23.3 이미지 만들기 ... 490
        이미지 생성 ... 490
        ImageCreate ... 490
        ImageCreateFromGif, Jpeg, Png ... 491
        ImageDestroy ... 491
        이미지 출력 (ImageGif) ... 492
        색의 지정 (ImageColorAllocate) ... 493
        그리기 ... 495
        ImageSetPixel ... 495
        ImageLine ... 496
        ImageRectangle ... 497
        ImagePolygon ... 498
        ImageArc ... 501
        색칠하기 (ImageFill) ... 502
        글씨 쓰기 ... 503
        Imagestring ... 503
        ImageTTFtext ... 504
      23.4 그래프 그리기 ... 506
   24장 기타 함수 ... 517
      24.1 eval ... 518
      24.2 exit ... 522
      24.3 DNS 관련 함수 ... 523
      24.4 isset, unset ... 524
      24.5 쉘 명령의 실행 ... 526
Part 4. 데이터베이스
   25장 mySQL ... 533
      25.1 Database란? ... 534
      25.2 mySQL 구조의 이해 ... 536
      25.3 Query란? ... 540
   26장 mySQL 사용 준비 ... 541
      26.1 사용자 추가하기 ... 542
      26.2 DB 추가하기 ... 545
      26.3 mySQL에 접속하기 ... 548
        mysql_connect ... 548
        mysql_select_db ... 549
        mysql_close ... 550
   27장 테이블 ... 551
      27.1 자료형 ... 552
        문자형 ... 553
        char ... 553
        varchar ... 553
        text ... 553
        기타 ... 554
        숫자형 ... 554
        int ... 554
        tinyint ... 555
        기타 ... 555
        날짜형 ... 556
        열거형 ... 556
      27.2 테이블의 생성과 삭제 ... 557
        테이블 생성하기 ... 557
        테이블 삭제하기 ... 559
        제약 조건 ... 562
        기본 키 (primary key) ... 562
        유일한 값, 유일 키 (unique key) ... 564
        NOT NULL ... 564
        기본 값 (default) ... 565
        auto_increment ... 566
        테이블 변경하기 ... 567
        추가 ... 567
        삭제 ... 569
        변경 ... 570
      27.3 테이블의 설계 ... 571
   28장 기본 쿼리문 ... 575
      28.1 자료 넣기 ... 576
        INSERT ... 576
        DELETE ... 577
        WHERE ... 578
        컬럼 = '값' ... 578
        컬럼 BETWEEN '값1' AND '값2' ... 579
        컬럼 LIKE '%값%' ... 579
        AND와 OR ... 579
        다음의 WHERE 절이 무엇을 뜻하는지 생각해보자 :) ... 580
        UPDATE ... 580
      28.2 자료 꺼내기 ... 581
        SELECT ... 581
        PHP에서의 SELECT ... 583
        ORDER BY ... 589
        LIMIT ... 591
        DISTINCT ... 593
        함수 ... 594
        COUNT ... 594
        SUM ... 597
        MAX.MIN ... 598
        AVG ... 599
        ROUND ... 600
        기타 함수 ... 602
Part 5. 실전 웹 프로그래밍
   29장 카운터 만들기 ... 605
      29.1 로직 ... 606
        테이블 설계 ... 607
      29.2 소스 작성 ... 611
      29.3 쿠키의 설정 ... 616
      29.4 이미지 카운터 ... 621
   30장 윈앰프 방송 정보 추출 ... 627
      30.1 소스 페이지 ... 629
      30.2 소켓 열기 ... 631
      30.3 데이터 가공하기 ... 635
   31장 메모장 만들기
      31.1 테이블 설계 ... 642
      31.2 페이지 설계 ... 644
        write.php ... 644
        write_ing.php ... 645
        list.php ... 645
        del.php ... 645
        del_ing.php ... 646
        edit.php ... 646
        edit_ing.php ... 646
        lib.php ... 646
      31.3 소스의 작성 ... 647
        lib.php (함수 라이브러리) ... 647
        페이지 이동 함수 ... 647
        에러 메시지 출력 함수 ... 648
        write.php (글쓰기 폼) ... 649
        write_ing.php (글의 저장) ... 651
        list.php (글 목록) ... 656
        페이지 이동 로직 ... 660
        이전 페이지 그룹 이동 버튼 ... 678
        다음 페이지 그룹 이동 버튼 ... 678
        번호 붙이기 ... 682
        del.php(삭제) ... 686
        edit.php(수정) ... 694
      31.4 검색 ... 704
        검색 폼 만들기 ... 704
        검색의 실행 ... 706
        검색 이후의 설정 ... 715
        검색어의 강조 ... 720
      31.5 다중 메모장의 구현 ... 723
   32장 게시판 만들기 ... 727
      32.1 메모장과 다른 점 ... 728
        답변형 게시판 알고리즘 ... 728
        글의 내용 보기 ... 741
      32.2 테이블 설계 ... 742
      32.3 페이지 설계 ... 744
      32.4 소스의 작성 ... 745
        write.php (글쓰기 폼) ... 745
        write_ing.php (글의 저장) ... 746
        list.php (글 목록) ... 750
        view.php (글 내용) ... 758
        reply.php (답변 쓰기 폼) ... 761
        reply_ing.php (답변글의 저장) ... 763
닫기