プログラミングPHP 第2版

[cover photo]
  • 2007年10月 発行
  • 448ページ
  • ISBN978-4-87311-342-5
  • フォーマット PDF
  • 原書: Programming PHP, Second Edition


Webアプリケーション開発の定番言語であるPHP言語を、言語仕様から実用的なプログラミングテクニックまで詳細に解説―「本書を読み終えることで、PHP言語の動作原理を知ることができます。また、PHPに付属する多くの拡張モジュールの使用方法を身に付け、自分でPHPのウェブアプリケーションを設計して作成できるようになるでしょう。」(本書「はじめに」より)
PHP言語を扱うすべてのユーザのための本格的解説書。

関連書籍

プログラミングPHP 第3版

訳者まえがき
序文
はじめに

1章 PHPについて
	1.1 PHPとは
	1.2 PHPの歴史
		1.2.1 PHPの誕生
		1.2.2 PHPの発展
	1.3 PHPのインストール
	1.4 PHPの例
		1.4.1 設定情報のページ
		1.4.2 フォーム
		1.4.3 データベース
		1.4.4 グラフィックス
		1.4.5 シェルからの使用

2章 PHP言語の基本
	2.1 字句構造
		2.1.1 大文字/小文字の区別
		2.1.2 命令文とセミコロン
		2.1.3 空白と改行
		2.1.4 コメント
		2.1.5 リテラル
		2.1.6 識別子
		2.1.7 キーワード
	2.2 データ型
		2.2.1 整数
		2.2.2 浮動小数点数
		2.2.3 文字列
		2.2.4 論理値
		2.2.5 配列
		2.2.6 オブジェクト
		2.2.7 リソース
		2.2.8 NULL
	2.3 変数
		2.3.1 可変変数
		2.3.2 変数への参照
		2.3.3 変数のスコープ
		2.3.4 ガベージコレクション
	2.4 式と演算子
		2.4.1 オペランドの数
		2.4.2 演算子の優先順位
		2.4.3 演算子の結合時の評価順
		2.4.4 暗黙のキャスト
		2.4.5 算術演算
		2.4.6 文字列連結演算子
		2.4.7 インクリメント演算子とデクリメント演算子
		2.4.8 比較演算子
		2.4.9 ビット演算子
		2.4.10 論理演算子
		2.4.11 キャスト演算子
		2.4.12 代入演算子
		2.4.13 その他の演算子
	2.5 フロー制御文
		2.5.1 if
		2.5.2 switch
		2.5.3 while
		2.5.4 for
		2.5.5 foreach
		2.5.6 declare
		2.5.7 exitとreturn
	2.6 外部のコードの読み込み
	2.7 ウェブページへのPHPの埋め込み
		2.7.1 XML形式
		2.7.2 SGML形式
		2.7.3 ASP形式
		2.7.4 <script>タグ
		2.7.5 コンテンツを直接出力する方法

3章 関数
	3.1 関数の呼び出し
	3.2 関数の定義
	3.3 変数のスコープ
		3.3.1 グローバル変数
		3.3.2 スタティック変数
	3.4 関数のパラメータ
		3.4.1 値渡しのパラメータ
		3.4.2 参照渡しのパラメータ
		3.4.3 パラメータのデフォルト値
		3.4.4 可変パラメータ
		3.4.5 パラメータの省略
	3.5 返り値
	3.6 可変関数
	3.7 無名関数

4章 文字列
	4.1 文字列定数のクォート処理
		4.1.1 変数の展開
		4.1.2 シングルクォートで囲まれた文字列
		4.1.3 ダブルクォートで囲まれた文字列
		4.1.4 ヒアドキュメント
	4.2 文字列の表示
		4.2.1 echo
		4.2.2 print()
		4.2.3 printf()
		4.2.4 print_r()とvar_dump()
	4.3 個別の文字へのアクセス
	4.4 文字列のお掃除
		4.4.1 空白の除去
		4.4.2 大文字/小文字の変換
	4.5 エンコードとエスケープ
		4.5.1 HTML
		4.5.2 URL
		4.5.3 SQL
		4.5.4 C言語形式の文字列のエンコード
	4.6 文字列の比較
		4.6.1 完全一致
		4.6.2 類似性
	4.7 文字列の操作と検索
		4.7.1 一部の取り出し
		4.7.2 その他の文字列関数
		4.7.3 文字列の分解
		4.7.4 文字列の検索関数
	4.8 正規表現
		4.8.1 正規表現の基本
		4.8.2 文字クラス
		4.8.3 選択肢
		4.8.4 繰り返し
		4.8.5 サブパターン
	4.9 POSIX形式の正規表現
		4.9.1 文字クラス
		4.9.2 アンカー
		4.9.3 関数
	4.10 Perl互換の正規表現
		4.10.1 デリミタ
		4.10.2 マッチングの挙動
		4.10.3 文字クラス
		4.10.4 アンカー
		4.10.5 量指定子の貪欲さ
		4.10.6 キャプチャしないグループ
		4.10.7 後方参照
		4.10.8 後置オプション
		4.10.9 インラインオプション
		4.10.10 先読みと戻り読み
		4.10.11 無視
		4.10.12 条件式
		4.10.13 関数
		4.10.14 Perlの正規表現との違い

5章 配列
	5.1 インデックス配列と連想配列
	5.2 配列の要素の識別
	5.3 配列へのデータの格納
		5.3.1 配列の末尾への値の追加
		5.3.2 範囲指定による配列への代入
		5.3.3 配列の大きさの取得
		5.3.4 配列の要素の継ぎ足し
	5.4 多次元配列
	5.5 多次元配列の展開
		5.5.1 配列のスライス
		5.5.2 配列の分割
		5.5.3 キーと値
		5.5.4 ある要素が存在するかどうかのチェック
		5.5.5 配列の要素の削除と追加
	5.6 配列と変数との変換
		5.6.1 配列からの変数の作成
		5.6.2 変数からの配列の作成
	5.7 配列の順次処理
		5.7.1 foreach構文
		5.7.2 イテレータ関数
		5.7.3 forループの使用
		5.7.4 配列の各要素に対する関数の呼び出し
		5.7.5 配列の還元
		5.7.6 値の検索
	5.8 配列のソート
		5.8.1 配列を一度にソート
		5.8.2 自然順でのソート
		5.8.3 複数の配列の一括ソート
		5.8.4 配列の逆転
		5.8.5 順番のランダム化
	5.9 配列全体に対する処理
		5.9.1 配列の和の計算
		5.9.2 2つの配列のマージ
		5.9.3 2つの配列の差の計算
		5.9.4 配列の要素のフィルタリング
	5.10 配列の使用法
		5.10.1 集合
		5.10.2 スタック

6章 オブジェクト
	6.1 用語の定義
	6.2 オブジェクトの作成
	6.3 プロパティおよびメソッドへのアクセス
	6.4 クラスの宣言
		6.4.1 メソッドの宣言
		6.4.2 プロパティの宣言
		6.4.3 定数の宣言
		6.4.4 継承
		6.4.5 インタフェース
		6.4.6 抽象メソッド
		6.4.7 コンストラクタ
		6.4.8 デストラクタ
	6.5 内部検査
		6.5.1 クラスについての調査
		6.5.2 オブジェクトについての調査
		6.5.3 内部検査のサンプルプログラム
	6.6 シリアライズ

7章 ウェブに関するテクニック
	7.1 HTTPの基本
	7.2 変数
	7.3 サーバの情報
	7.4 フォームの処理
		7.4.1 メソッド
		7.4.2 パラメータ
		7.4.3 パラメータの自動クォート処理
		7.4.4 自己参照するページ
		7.4.5 固定フォーム
		7.4.6 複数選択形式のパラメータ
		7.4.7 複数選択パラメータの固定
		7.4.8 ファイルのアップロード
		7.4.9 フォームの入力チェック
	7.5 レスポンスヘッダの設定
		7.5.1 さまざまなコンテンツタイプ
		7.5.2 リダイレクト
		7.5.3 有効期限
		7.5.4 認証
	7.6 状態の管理
		7.6.1 クッキー
		7.6.2 セッション
		7.6.3 クッキーとセッションの組み合わせ
	7.7 SSL

8章 データベース
	8.1 PHPによるデータベースへのアクセス
	8.2 リレーショナルデータベースとSQL
	8.3 PEAR DBの基本
		8.3.1 データソース名
		8.3.2 接続
		8.3.3 エラーチェック
		8.3.4 クエリの発行
		8.3.5 クエリからの結果の取得
		8.3.6 接続の切断
	8.4 応用テクニック
		8.4.1 プレースホルダ
		8.4.2 プリペア/実行
		8.4.3 ショートカット
		8.4.4 クエリの結果の詳細
		8.4.5 シーケンス
		8.4.6 メタデータ
		8.4.7 トランザクション
	8.5 サンプルアプリケーション
		8.5.1 データベースのテーブル
		8.5.2 データベースへの接続
		8.5.3 管理者用ページ
		8.5.4 企業の追加
		8.5.5 データベースの内容の表示
		8.5.6 PDO(PHP Data Objects)

9章 グラフィックス
	9.1 ページへの画像の埋め込み
	9.2 GD拡張モジュール
	9.3 グラフィックについての基本概念
	9.4 画像の作成と描画
		9.4.1 画像処理プログラムの構造
		9.4.2 出力フォーマットの変更
		9.4.3 サポートする画像フォーマットの確認
		9.4.4 既存のファイルの読み込み
		9.4.5 基本的な描画関数
	9.5 画像とテキスト
		9.5.1 フォント
		9.5.2 TrueTypeフォント
	9.6 動的に作成するボタン
		9.6.1 動的に作成したボタンのキャッシュ
		9.6.2 より高速なキャッシュ
	9.7 画像の拡大/縮小
	9.8 色の処理
		9.8.1 アルファチャネルの使用法
		9.8.2 色の特定
		9.8.3 フルカラー画像のインデックス
		9.8.4 テキスト形式での画像データの表示

10章 PDF
	10.1 PDF用の拡張モジュール
	10.2 ドキュメントとページ
		10.2.1 シンプルな例
		10.2.2 ドキュメントの初期化
		10.2.3 基本的なテキスト出力:セルの使用
	10.3 テキスト
		10.3.1 座標
		10.3.2 テキストの属性
		10.3.3 ページヘッダ、ページフッタ、そしてクラスの拡張
		10.3.4 画像とリンク
		10.3.5 表とデータ

11章 XML
	11.1 XMLとは
	11.2 XMLの作成
	11.3 XMLの解析
		11.3.1 要素ハンドラ
		11.3.2 文字データハンドラ
		11.3.3 処理命令
		11.3.4 エンティティハンドラ
		11.3.5 デフォルトのハンドラ
		11.3.6 オプション
		11.3.7 パーサの使用法
		11.3.8 エラー
		11.3.9 メソッドのハンドラとしての使用法
		11.3.10 XML解析プログラムのサンプル
	11.4 DOMによるXMLの解析
	11.5 SimpleXMLによるXMLの解析
	11.6 XSLTによるXMLの変換
	11.7 ウェブサービス
		11.7.1 サーバ
		11.7.2 クライアント

12章 セキュリティ
	12.1 入力のフィルタリング
		12.1.1 SQLインジェクション
	12.2 出力のエスケープ
		12.2.1 ファイル名
	12.3 クロスサイトスクリプティング
	12.4 セッションの固定化
	12.5 ファイルのアップロード
		12.5.1 ブラウザから渡されたファイル名を信用しない
		12.5.2 ファイルシステムへの格納時に注意する
		12.5.3 register_globalsの恐怖
	12.6 ファイルへのアクセス
		12.6.1 指定したディレクトリ以外へのアクセスを制限する
		12.6.2 最初にきちんとする
		12.6.3 ファイルを使わない
		12.6.4 セッションファイルの扱い
		12.6.5 PHPライブラリを隠す
	12.7 PHPのコード
	12.8 シェルのコマンド
	12.9 参考資料
	12.10 まとめ

13章 アプリケーションに関するテクニック
	13.1 コードライブラリ
	13.2 テンプレートシステム
	13.3 出力の処理方法
		13.3.1 出力バッファリング
		13.3.2 出力の圧縮
	13.4 エラー処理
		13.4.1 エラーの報告
		13.4.2 エラーの抑制
		13.4.3 エラーを意図的に発生させる
		13.4.4 エラーハンドラの定義
	13.5 パフォーマンスチューニング
		13.5.1 ベンチマーク
		13.5.2 プロファイリング
		13.5.3 実行時間の最適化
		13.5.4 メモリの使用量の最適化
		13.5.5 リバースプロキシとレプリケーション

14章 PHPの拡張
	14.1 アーキテクチャの概要
	14.2 必要なもの
		14.2.1 PHPのソースコード
		14.2.2 開発ツール
	14.3 初めての拡張モジュールの作成
		14.3.1 コマンドライン版のPHP
		14.3.2 作成する拡張モジュールの決定
		14.3.3 拡張モジュールの雛形の作成
		14.3.4 雛形への肉付け
		14.3.5 拡張モジュールのコンパイル
		14.3.6 作成した拡張モジュールのテスト
	14.4 config.m4ファイル
		14.4.1 外部の依存ファイルがない場合
		14.4.2 外部ファイルに依存する場合
	14.5 メモリ管理
	14.6 pval/zvalデータ型
		14.6.1 MAKE_STD_ZVAL()
		14.6.2 SEPARATE_ZVAL()
		14.6.3 zval_copy_ctor()
		14.6.4 アクセス用マクロ群
	14.7 パラメータの処理
		14.7.1 単純な例
		14.7.2 もう少し複雑な例
		14.7.3 可変引数リストを使用する例
	14.8 返り値の処理
		14.8.1 単純な型
		14.8.2 配列
		14.8.3 オブジェクト
	14.9 参照
	14.10 グローバル変数
		14.10.1 SAPIグローバル(SG)
		14.10.2 エグゼキュータグローバル(EG)
		14.10.3 拡張モジュールグローバル
	14.11 変数の作成
	14.12 拡張モジュールのINIエントリ
	14.13 リソース
	14.14 これから進むべき方向

15章 WindowsでのPHP
	15.1 Windows上でのPHPのインストールと設定
		15.1.1 PHPのダウンロード
		15.1.2 PHPを実行するウェブサーバの設定
		15.1.3 拡張モジュールの追加
		15.1.4 MySQL拡張モジュールの追加
	15.2 WindowsとUnixで共用できるコードの書き方
		15.2.1 実行環境の調べ方
		15.2.2 複数プラットフォームに対応するパス
		15.2.3 環境変数
		15.2.4 メールの送信
		15.2.5 改行コードの扱い
		15.2.6 ファイル終端の扱い
		15.2.7 外部コマンド
		15.2.8 プラットフォームに依存する拡張モジュール
	15.3 COMインタフェースの使用
		15.3.1 背景知識
		15.3.2 PHPの関数
		15.3.3 APIの調べ方
		15.3.4 既存のWord文書への書き込み
	15.4 ODBCデータソースの使用
		15.4.1 DSNの設定
		15.4.2 Accessの使用

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]