Programmer to programmer
プロフェッショナルPHPプログラミング

  • ただいまウェブストアではご注文を受け付けておりません。
  • サイズ B5判/ページ数 926p/高さ 24cm
  • 商品コード 9784844314837
  • NDC分類 547.48
  • Cコード C3055

出版社内容情報


本書では、PHPでのプログラミングを解説しています。PHPはオープンソースの、サーバーサイドで
動くスクリプティング言語で、動的なWebページを簡単に作ることができます。
PHPは他のさまざまなインターネット技術と組み合わせることができます。本書では、その中でも
LDAP、XML、IMAPとの連携について詳細を解説しています。 PHPを使えば、Webサイトに動的な要素を
簡単に追加できます。文法はわかりやすく、オーバーヘッドも少ないので、ちょっとしたスクリプトを
書くだけなら、複雑な言語構造に迷うようなこともなく、すぐにPHPを使い始めることができます。
本書では、PHPのインストールはもちろん、PHPエンジンの設定、高度なPHPアプリケーションの設計、
データベース、ディレクトリ操作、動的な画像の使用、XMLとの使用など、幅広く解説しています。


■総合目次
監訳者まえがき........3
著者紹介........4
はじめに........6
第1章 PHPとは........27
第2章 PHPのインストールと設定........33
第3章 Web環境でのプログラミング........79
第4章 変数、定数、データ型........109
第5章 演算子........123
第6章 文........137
第7章 関数........155
第8章 配列........171
第9章 オブジェクト指向プログラミング........189
第10章 文字列操作と正規表現........203
第11章 ファイルの操作とデータの保存........231
第12章 PHPデータベースとSQLデータベース........269
第13章 PHPとLDAP........329
第14章 XML........369
第15章 画像の生成と操作........415
第16章 PHPのネットワーク接続........457
第17章 電子メールの送受信........471
第18章 クッキー........491
第19章 デバッグとエラー処理........503
第20章 セキュリティ........525
第21章 magic quote........559
第22章 テンプレート........567
ケーススタディ1 ショッピングカートアプリケーション........581
ケーススタディ2 Phorumディスカッションソフトウェア........655
ケーススタディ3 電子メールアプリケーション........691
ケーススタディ4 データベース........703
付録A PHPの関数........739
付録B PHP 4とZend........822
付録C Wrox HTMLデータベース完全リスト........831
付録D HTTP要求と応答........882
付録E 正規表現........894
付録F オープンソースソフトウェア........897
付録G 情報源........909
索引........913


■目次
監訳者まえがき........3

著者紹介........4
  Jesus M. Castagnetto(ジーザス・カスタニェット)........4
  Harish Rawat(ハリッシュ・ラワト)........4
  Sascha Schumann(サシャ・シュマン)........4
  Christopher Scollo(クリストファ・スコロ)........4
  Deepak Veliath(ディーパク・ベリアス)........5
  武藤 健志(むとう けんし)........5

はじめに........6
 本書の内容........6
 本書が対象とする読者........7
 必要とするコンピュータ環境........7
 本書の表記法........7
 ソースコードのダウンロード........8

第1章 PHPとは........27
  1.0.1 PHP入門........28
  1.0.2 本書のスタイルと構成........31
  1.0.3 おわりに........31
  1.0.4 便利なWebサイト........31

第2章 PHPのインストールと設定........33
 2.1 インストール........34
  2.1.1 プラットフォームとWebサーバー........34
  2.1.2 PHPモジュール........34
  2.1.3 CGIインタープリタとApacheモジュール........35
  2.1.4 ディストリビューションの入手........36
 2.2 設定........52
  2.2.1 コンパイル時の設定........52
  2.2.2 Apache命令による設定........56
  2.2.3 php3.iniファイルを使った設定........56
 2.3 MySQL........68
  2.3.1 MySQLのインストール........68
  2.3.2 アクセス権限の設定........72
 2.4 PostgreSQLのコンパイルと設定........73
  2.4.1 PostgreSQLのインストール........74
  2.4.2 Boutell社のGDライブラリ1.3―GIF作成のサポート........75
  2.4.3 Expat―XMLパーサのサポート........76
 2.5 まとめ........76
 2.6 推奨サイトと書籍........77

第3章 Web環境でのプログラミング........79
 3.1 なぜPHPを使うのか........79
  3.1.1 HTMLの欠点........79
 3.2 Web――次世代........81
  3.2.1 スタティックパブリッシング........82
  3.2.2 アクティブWebサイト........82
 3.3 PHPのページの作成........87
  3.3.1 PHPとクライアントサイドのコード........89
  3.3.2 PHPの変数........90
  3.3.3 ユーザーとの相互通信........90
  3.3.4 フォームデータの処理........93
 3.4 仕事の応募フォーム........95
  3.4.1 URLエンコード........96
  3.4.2 コード内のコメント........101
  3.4.3 エスケープ文字........103
 3.5 まとめ........106

第4章 変数、定数、データ型........109
  4.0.1 データ型........109
  4.0.2 リテラルと識別子........110
  4.0.3 データの値........110
  4.0.4 定数........110
  4.0.5 変数の宣言と初期化........112
  4.0.6 型の相互変換とキャスト........113
  4.0.7 可変変数........114
  4.0.8 変数のための便利な関数........115
  4.0.9 仕事の応募フォームの作成........117
  4.0.10 まとめ........121

第5章 演算子........123
 5.1 算術演算子........123
  5.1.1 単項演算子........123
 5.2 変数の代入演算子........124
 5.3 比較演算子........124
 5.4 論理演算子........126
 5.5 文字列結合演算子........127
 5.6 三項演算子........129
 5.7 ビット演算子........129
 5.8 変数への代入のショートカット........130
 5.9 その他の演算子........132
  5.9.1 変数演算子........132
  5.9.2 オブジェクト演算子........132
  5.9.3 エラー制御演算子........132
 5.10 演算の優先順位と結合規則........133
 5.11 オンラインの仕事の申込書の作成........134
 5.12 まとめ........136

第6章 文........137
 6.1 条件文........137
  6.1.1 if文........137
  6.1.2 switch文........141
 6.2 ループ........143
  6.2.1 whileループ........143
  6.2.2 forループ........145
 6.3 PHPページへのファイルのインクルード........146
 6.4 PHPページの終了........147
 6.5 オンラインの仕事の申込書の作成........148
 6.6 まとめ........152

第7章 関数........155
 7.1 関数の機能方法........155
  7.1.1 引数の引き渡し........157
 7.2 変数のスコープとライフタイム........160
 7.3 入れ子の関数と再帰........162
 7.4 変数への関数の割り当て........164
 7.5 仕事の応募フォーム........164
 7.6 まとめ........170

第8章 配列........171
 8.1 簡単な配列........171
  8.1.1 配列の初期化........172
  8.1.2 配列に対するループ処理の実行........173
 8.2 文字列インデックスの配列........178
 8.3 多次元配列........180
 8.4 ソートのための関数........181
 8.5 フォームの項目への配列の使用........185
 8.6 まとめ........187

第9章 オブジェクト指向プログラミング........189
 9.1 オブジェクト指向プログラミング........189
  9.1.1 クラスの作成........190
  9.1.2 インスタンスの作成........195
 9.2 継承........199
  9.2.1 まとめ........202

第10章 文字列操作と正規表現........203
  10.0.2 基本的な文字列関数........203
 10.1 正規表現........209
  10.1.1 基本パターンのマッチング........209
  10.1.2 正規表現関数........215
 10.2 仕事の応募フォーム........219
 10.3 まとめ........229

第11章 ファイルの操作とデータの保存........231
 11.1 ファイルの操作........231
  11.1.1 ファイルのオープン........231
  11.1.2 ファイルのクローズ........232
  11.1.3 ファイルの表示........233
  11.1.4 ファイルからの読み取り........233
  11.1.5 ファイルへの書き込み........235
  11.1.6 ファイル内の移動........235
  11.1.7 ファイルのコピー、削除、名前変更........237
  11.1.8 ファイル属性の確認........238
  11.1.9 ディレクトリに関する処理........239
 11.2 クライアントからのファイルのアップロード........242
  11.2.1 アップロードされたファイルの処理........242
  11.2.2 ファイルの確認........243
 11.3 応募フォームの改良........245
 11.4 非リレーショナルデータベース........251
  11.4.1 プログラムの仕様........252
  11.4.2 アドレス帳のユーザーインターフェイス........252
  11.4.3 全体表示........253
  11.4.4 データベース内の検索........257
  11.4.5 項目の削除........258
  11.4.6 項目の表示........259
  11.4.7 アドレス帳の編集........260
  11.4.8 データベースの更新........262
  11.4.9 新しい項目の追加........262
  11.4.10 CSVファイルからのデータのインポート........264
  11.4.11 仕上げ........266
 11.5 まとめ........268

第12章 PHPデータベースとSQLデータベース........269
 12.1 データベースを使う理由........269
  12.1.1 Webデータベースアプリケーションのアーキテクチャ........270
 12.2 SQL........271
  12.2.1 SQL言語の解説........276
 12.3 データ定義文........276
  12.3.1 データ操作文........282
  12.3.2 データベースの検索に使う文........285
 12.4 PHPのデータベース接続サポート........288
  12.4.1 MySQLデータベース........288
  12.4.2 PHPのMySQL APIサポート........291
 12.5 PHP/MySQLアプリケーションのサンプル........309
 12.6 PHP/PostgreSQLアプリケーションのサンプル........323
 12.7 まとめ........327

第13章 PHPとLDAP........329
 13.1 ディレクトリサービスとLDAP........329
  13.1.1 LDAP――ディレクトリアクセスプロトコル........330
 13.2 LDAPの動作........332
 13.3 LDAPソフトウェア........340
 13.4 PHPのLDAPサポート........346
 13.5 まとめ........368

第14章 XML........369
 14.1 XMLとは........369
  14.1.1 XMLの必要性........370
 14.2 XMLの構文........371
  14.2.1 XML文書の構造........373
  14.2.2 文書型定義(DTD)........375
 14.3 PHPのXMLサポート........380
 14.4 PHPのXML API........381
  14.4.1 xml_parser_create――XMLパーサーの生成........382
  14.4.2 ハンドラ関数の登録........383
  14.4.3 xml_parse――XML文書のパース........393
  14.4.4 xml_parser_free――パーサーの解放........394
  14.4.5 パーサーのオプション........394
  14.4.6 ユーティリティ関数........395
 14.5 PHP XMLアプリケーション........397
  14.5.1 Webを使った企業間アプリケーション........397
  14.5.2 スマートサーチ........397
  14.5.3 XMLからHTMLへの変換........397
  14.5.4 同じデータのいろいろな表示........398
 14.6 PHP XMLアプリケーションの例........398
 14.7 まとめ........412

第15章 画像の生成と操作........415
 15.1 画像とサーバーサイドスクリプト........415
 15.2 PHPでの画像操作........419
  15.2.1 PHPへの画像サポートのインストール........420
  15.2.2 PHPの画像API........420
 15.3 画像関数を使ったアプリケーション........449
  15.3.1 PHPの画像アプリケーションの例........450
  15.3.2 ヒットカウンタのページ........450
  15.3.3 ヒットの計数........451
  15.3.4 画像の生成........453
 15.4 まとめ........454

第16章 PHPのネットワーク接続........457
 16.1 クライアントとサーバー........457
 16.2 TCPの使い方........458
 16.3 whois関数........459
 16.4 フロントエンド........461
 16.5 フロントエンドの拡張........463
 16.6 ドメインの有効性チェック........464
 16.7 Webクライアント........465
 16.8 まとめ........469

第17章 電子メールの送受信........471
 17.1 電子メールの送信........471
 17.2 mail()コマンド........471
 17.3 mime_mailクラス........473
 17.4 SMTPの使い方........478
 17.5 PHPから日本語入りのメールを送るには........483
 17.6 電子メールの受信........485
 17.7 まとめ........488

第18章 クッキー........491
 18.1 クッキーとは........491
 18.2 クッキーの制約........492
 18.3 PHPでのクッキーの扱い........493
  18.3.1 簡単な例........493
  18.3.2 お名前をどうぞ........494
 18.4 クッキーへのアクセス........495
 18.5 クッキーの設定........496
  18.5.1 複数値クッキー........496
  18.5.2 有効期限の設定........496
  18.5.3 クッキーのスコープの制限........497
 18.6 クッキーの削除........498
 18.7 よくある間違い........499
 18.8 HTTPヘッダーの送信........501
 18.9 まとめ........501

第19章 デバッグとエラー処理........503
 19.1 エラーの種類........503
  19.1.1 構文エラー........503
  19.1.2 意味的エラー........505
  19.1.3 論理エラー........506
  19.1.4 環境エラー........507
 19.2 PHPのエラーメッセージ........508
  19.2.1 PHPのエラーレベル........508
  19.2.2 エラー表示レベルの設定........512
 19.3 エラー処理........512
  19.3.1 エラーメッセージの抑止........513
  19.3.2 エラーからの適切な回復処理........513
  19.3.3 自作のエラーチェック........514
 19.4 エラーのログ........515
  19.4.1 リモートデバッガ........516
 19.5 よくある、原因のわかりにくいエラー........520
  19.5.1 Header Already Sent/Cannot add header information
(ヘッダー送信済み)........520
  19.5.2 Undefined Function(未定義の関数)........521
  19.5.3 magic_quotesエラー........521
  19.5.4 最大実行時間........522
 19.6 まとめ........523

第20章 セキュリティ........525
 20.1 セキュリティの重要性........525
 20.2 まずすべきこと........525
 20.3 安全なWebサーバーの実現........526
 20.4 安全なPHPの設定........530
 20.5 セーフモードの利用........533
 20.6 ユーザーの識別と認証........534
 20.7 暗号の利用........538
 20.8 SSLを使った安全なトランザクション........540
  20.8.1 OpenSSLとmod_SSLのダウンロード........541
  20.8.2 OpenSSLライブラリの構築とインストール........542
  20.8.3 mod_sslの構築とインストール........545
  20.8.4 SSLの基本的な設定........548
  20.8.5 秘密鍵のインストール........549
  20.8.6 証明要求と一時証明書の作成........550
  20.8.7 署名付き証明書の取得........552
 20.9 ApacheのsuEXEC機能の利用........553
 20.10 安全なPHPスクリプトの作成........554
 20.11 まとめ........557

第21章 magic quote........559
 21.1 問題の定義........559
  21.1.1 変換処理........559
  21.1.2 スコープの定義........561
 21.2 magic quoteの適用........561
 21.3 2つのヘルパ関数........563
 21.4 別のアプローチ方法........566
 21.5 まとめ........566

第22章 テンプレート........567
 22.1 一般的なテンプレート技術........567
 22.2 アプリケーションにおけるテンプレートの使用........568
  22.2.1 埋め込みPHP........568
  22.2.2 共通部分の分離........569
  22.2.3 FastTemplate........570
  22.2.4 サイト全体のフレームワーク........577
 22.3 既存のコードベースとFastTemplate........579
 22.4 まとめ........579

ケーススタディ1 ショッピングカートアプリケーション........581
 CS1.1 ショッピングカートアプリケーションへの要求分析........582
 CS1.2 ふさわしいソフトウェアの選択........583
  CS1.2.1 エンドユーザーとの対話........585
 CS1.3 アプリケーションの設計........585
  CS1.3.1 データベーススキーマの設計........585
  CS1.3.2 中間層の設計で考慮すべきこと........591
 CS1.4 エンドユーザー機能の実装........593
  CS1.4.1 アプリケーションコード........598
 CS1.5 管理者機能の実装........631
 CS1.6 まとめ........653

ケーススタディ2 Phorumディスカッションソフトウェア........655
 CS2.1 PHPを使う理由........656
  CS2.1.1 データベースのサポート........656
  CS2.1.2 HTMLに埋め込まれたPHP........657
  CS2.1.3 例外エラー処理機能........659
 CS2.2 Phorumの仕組み........660
  CS2.2.1 Phorumのインターフェイス........660
 CS2.3 コードの中身........662
  CS2.3.1 コードの再利用........662
  CS2.3.2 データベース分離層........664
  CS2.3.3 PHPコード処理中のコード生成........664
  CS2.3.4 クッキーへのユーザーデータの保管........666
  CS2.3.5 すべての中心となるファイル――forums.inf........668
  CS2.3.6 フォーラムの一覧――index.php3........671
  CS2.3.7 メッセージの一覧――list.php3........673
  CS2.3.8 メッセージを読む――read.php3........678
  CS2.3.9 メッセージの投稿――post.php3........679
  CS2.3.10 検索――search.php3........685
 CS2.4 まとめ........689

ケーススタディ3 電子メールアプリケーション........691
 CS3.1 まとめ........702

ケーススタディ4 データベース........703
 CS4.1 アプリケーションのアーキテクチャ........704
  CS4.1.1 第一層........705
  CS4.1.2 第二層........705
  CS4.1.3 第三層........705
 CS4.2 データベースのスキーマ........705
  CS4.2.1 proteinテーブル........705
  CS4.2.2 siteテーブル........707
 CS4.3 スクリプト全体の設計........708
 CS4.4 SQLクエリスクリプト........709
 CS4.5 外部関数モジュールの組み込み........711
  CS4.5.1 SQLステートメントの作成........712
  CS4.5.2 データベース独立のスクリプト........715
  CS4.5.3 結果の表示........718
 CS4.6 タンパク質識別子のクエリコード........721
 CS4.7 検索インターフェイスの拡張........727
 CS4.8 まとめ........737

付録A PHPの関数........739
 A.1 Apache関数........739
 A.2 Aspell関数........739
 A.3 ClibPDF関数........740
 A.4 CORBA分散オブジェクト関数........744
 A.5 CURL(クライアントURLライブラリ)........745
 A.6 dBase関数........745
 A.7 dbm関数........746
 A.8 DOM XML関数........747
 A.9 filePro関数........748
 A.10 Forms Data Format関数........748
 A.11 FTP関数........749
 A.12 HTTP関数........750
 A.13 Hyperwave関数........751
 A.14 ICAP関数........753
 A.15 IMAP関数........754
 A.16 Informix関数........757
 A.17 LDAP関数........759
 A.18 MCAL(Modular Calendar Access Library)制御関数........760
 A.19 Microsoft SQL Server関数........763
 A.20 mSQL関数........764
 A.21 MySQL関数........766
 A.22 NIS関数........768
 A.23 ODBC関数........768
 A.24 Oracle関数........771
 A.25 Oracle8関数........771
 A.26 PDF関数........773
 A.27 PHPのオプションと情報........777
 A.28 POSIX関数........778
 A.29 PostgreSQL関数........779
 A.30 Pspell関数........781
 A.31 Readlineライブラリ(GNU)関数........782
 A.32 Recodeライブラリ(GNU)関数........783
 A.33 Shockwave Flash関数........783
 A.34 SNMP関数........786
 A.35 Sybase関数........787
 A.36 URL関数........788
 A.37 Vmailmgr関数........788
 A.38 WDDX関数........789
 A.39 WindowsのCOMサポート関数........789
 A.40 XML Parser関数........790
 A.41 XSLT関数........791
 A.42 YAZツールキット関数........792
 A.43 zlib圧縮関数........792
 A.44 暗号化関数........793
 A.45 画像関数........795
 A.46 カレンダー関数........798
 A.47 サイバーキャッシュ関数........799
 A.48 出力バッファ制御関数........799
 A.49 数学関数........800
 A.50 正規表現関数........801
 A.51 正規表現関数(Perl互換)........802
 A.52 セッション処理関数........802
 A.53 セマフォと共用メモリ関数........803
 A.54 ソケット操作関数........804
 A.55 ダイナミックローディング関数........804
 A.56 ディレクトリ関数........805
 A.57 データベース(dbmスタイル)分離層関数........805
 A.58 任意精度数値関数........806
 A.59 ネットワーク関数........807
 A.60 配列関数........808
 A.61 ハッシュ関数........811
 A.62 日付と時刻関数........811
 A.63 ファイルシステム関数........812
 A.64 プログラム実行関数........815
 A.65 変数関数........816
 A.66 メール関数........817
 A.67 文字列関数........817
 A.68 その他の関数........820

付録B PHP 4とZend........822
 B.1 PHP 4........822
  B.1.1 PHP 4とWebサーバー........823
  B.1.2 セッション管理........823
  B.1.3 出力のバッファリング........827
  B.1.4 Javaのサポート........828
  B.1.5 新機能........829
 B.2 ZendとPHP 4........829
 B.3 PHP 3とPHP 4の非互換性........829

付録C Wrox HTMLデータベース完全リスト........831

付録D HTTP要求と応答........882
 D.1 URL要求プロトコル........882
 D.2 HTTPの基礎........883
  D.2.1 クライアント要求........883
  D.2.2 サーバー応答........885
  D.2.3 HTTPヘッダー........886
 D.3 サーバー環境変数........888

付録E 正規表現........894

付録F オープンソースソフトウェア........897
 F.1 オープンソースソフトウェアを使うことの利点........898
 F.2 オープンソースプロジェクトの例........902
 F.3 まとめ........903
 F.4 さらに詳しい情報........903
  F.4.1 Open Source Definition(OSD)バージョン1.7参考訳........903
  F.4.2 OSDに準拠するライセンス........905
  F.4.3 ソフトウェアの種類........906
  F.4.4 参考文献........907

付録G 情報源........909
 G.1 本書の内容に関連したWebサイト........909
  G.1.1 日本語による情報サイト........909
  G.1.2 第1章........910
  G.1.3 第2章........910
  G.1.4 第10章........911
  G.1.5 第12章........911
  G.1.6 第13章........911
  G.1.7 第14章........911
  G.1.8 第15章........911
  G.1.9 第16章........912
  G.1.10 第20章........912

索引........913

内容説明

PHPはオープンソースの、サーバーサイドで動くスクリプティング言語で、動的なWebページを簡単に作ることができます。本書では、その中でもLDAP、XML、IMAPとの連携について詳細に解説したほか、PHPのインストールから、PHPエンジンの設定、高度なPHPアプリケーションの設計、データベース、ディレクトリ操作、動的な画像の使用、XMLとの使用など、幅広く解説しています。

目次

PHPとは
PHPのインストールと設定
Web環境でのプログラミング
変数、定数、データ型
演算子

関数
配列
オブジェクト指向プログラミング
文字列操作と正規表現〔ほか〕

著者等紹介

カスタニェット,ジーザス[カスタニェット,ジーザス] [Castagnetto,Jesus M.]
博士号を持つ化学者。現在は、Metalloprotein Structure and Design Groupのポストドクターとして、The Scripps Resarch Instituteに勤務している。自社開発のプログラム、Javaアプレット/サーブレット、SQLデータベース、PHPサーバーサイドスクリプトを組み合わせて、金属タンパク質データベースと閲覧ソフトを開発中。博士号は、小型分子配位子金属錯体の計算的、合成的、理化学的な研究によって、ニューヨーク大学から授与された

ラワト,ハリッシュ[ラワト,ハリッシュ] [Rawat,Harish]
Harish Rawatは、Oracle社のソフトウェア技術者。システムプログラミングの経験が7年ある。技術的には、XML、Java、ネットワークプロトコルに関心がある

シュマン,サシャ[シュマン,サシャ] [Schumann,Sascha]
PHP GroupとApache Software Foundationのメンバー。現在は、Gymnasium Letmatheで研究している。PHPモジュールの多く(ほんの一例を挙げると、DBA、セッション管理、mcrypt、mhash)のアーキテクチャを設計している

スコロ,クリス[スコロ,クリス] [Scollo,Chris]
ソフトウェア開発会社Taurix社(ニュージャージー州ニューブランズウィック)の創立者の1人であり社長。Webアプリケーションの開発や、Webでの講習、あるいはWeb雑誌を制作している

ベリアス,ディーパク[ベリアス,ディーパク] [Veliath,Deepak]
現在、インド・バンガロールのOracle社に勤務している。この1年を本書の執筆に当てた。好みのOSは、Linux。執筆をしていないときは、いつでも編集者の寝首をかく方法を考えている

武藤健志[ムトウケンシ]
Debian Projectオフィシャルメンバー、日本Linux協会タスクメンバー。著書に『改訂版DebianGNU/Linux徹底入門potato対応』(翔泳社)など。監訳に『CVSバージョン管理システム』(共同監訳、オーム社)、『JavaプログラミングBlackBook』(インプレス)など多数(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。