出版社内容情報
本書では、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
内容説明
Web、HTML、マークアップ言語;HTMLからXHTMLへ;XHTML入門;リンクと埋め込みオブジェクト;画像;テーブル;フレーム;メタデータ;スタイルシート;XMLの概要〔ほか〕
目次
20010411
著者等紹介
バンフリー,フランク[Boumphrey,Frank]
医療、法的文書を専門とするCormorant Consultingに勤務。パンチカードと機械言語を使用していた初期の時代にプログラミングを始める。のちプログラミングを離れて医師となり、米国中西部の大規模な機関で脊椎外科の教授、主任となった。その間に、医療界へのMRI(磁気共鳴映像法)の導入に関わる。非常勤になったことにより、最初に関心を持ったコンピュータに再び関わるようになり、現在、医療機関に半合理的な形式で医療記録を編成することを勧めており、医療従事者とヘルスケア担当の幹部職員に文書問題に関する補助的講義を行っている。W3C(World Wide Webコンソーシアム)XHTMLワーキンググループに参加
グリーア,カサンドラ[Greer,Cassandra]
カリフォルニア州Glendaleで1966年に生まれる。現在、ドイツのミュンヘンに住んでいる。Brigham Young大学でドイツ語学の文学士号と文学修士号(TESOL)を取得。同時にBYU English Language Centerで長時間働き、各国の学生に英語を教え、コンピュータラボで働き、特別なハイパーカードスタックを開発した。卒業後、ミュンヘンで教育のキャリアを継続しもBMW、Siemens、Xerox Engineering Systems、CompuNet、Technical University Munich、University of Munich Physics Departmentなどで過去4年間技術英語を教え、翻訳の仕事に従事
ラゲット,デイブ[Raggett,Dave]
HP Labsから任命されてW3Cで働く。HTML、フォーム、音声プラウザ、数学での作業のW3Cスタッフの窓口である。モバイルとテレビのニーズに合わせたHTMLのモジュール化に関する作業、次世代Webフォームに関する作業だけでなく、Webへのアクセスのための音声による対話の使用に関する作業、次世代スクリプト言語に関する作業の立ち上げに貢献してきた。オックスフォード大学で教育を受ける。現在イギリス西部のBathの近くで暮らす
ラゲット,ジェニー[Raggett,Jenny]
技術情報の初心者レベルでの解説を専門とするフリーのテクニカルライター。技術的知識がない閲覧者を対象とするWebの領域での多数の新しい発展に関するW3Cの執筆作業に従事
スニチェンバウマー,セバスチャン[Schnitzenbaumer,Sebastian]
1977年にミュンヘンで生まれ、幼年期をインド洋の島で過ごす。10代でミュンヘンに戻った後、学業を早く終え、Webデザインコンサルタント業を始める。地域社会のWebサイトから大企業のIT管理に至るまで、Webアプリケーションの構築が主要な業務。1998年、仕事仲間で友人でもあるMalte Wedelとともに、インターネットソフトウェア会社であるMozquito.com(設立時の名前はStack Overflow)を共同設立。HTMLでの拡張Webフォームの提案を開発後、Mozquito.comはW3Cに加わり、SebastianはW3CHTMLワーキンググループのメンバーとなり、XHTMLの開発に参加
ウゴフスキ,テッド[Wugofski,Ted]
さまざまな新技術(人工知能、コンピュータ電話通信、デジタルテレビ、モバイルインターネット)において技術的なリーダーシップを発揮。インターネットを非従来型のコンピュータ機器に結び付ける製品の開発を行う。さまざまなW3Cワーキンググループに参加し、デジタルテレビ用マークアップ言語の定義のためのAdvanced Television Systems Committee内のチームを率いる。テキサス州Fort Worthで、妻のAnaとSofia、Bianca、Davidの3人の子供達と過ごしている
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。