プログラミングPHP 第4版

[cover photo]
TOPICS
Web , PHP
発行年月日
PRINT LENGTH
456
ISBN
978-4-8144-0027-0
原書
Programming PHP, 4th Edition
FORMAT
Print PDF EPUB
Ebook
4,290円
Ebookを購入する
Print
4,290円

本書はPHPプログラマのバイブルとして多くのエンジニアに親しまれている定番解説書の改訂第4版です。強力な文字列処理や配列処理、オブジェクト指向プログラミングのサポート、さまざまな拡張モジュー ルと組み合わせてのMySQLやOracleといったデータベースの使用、グラフの描画、PDFファイルの作成、XMLファイルの解析、JSONなど、PHP言語の基本からプログラミングに関する実用的なヒントまで解説します。PHPに付属する多くの拡張モジュールの使用法を身につけ、PHPのウェブアプリケーションを設計して作成できるようになるでしょう。本格的なウェブ開発を行いたい方やPHPをしっかり学びたい方などに最適の一冊です。サンプルコードはバージョン8.1.6で動作確認を行っています。

目次

プログラミングPHP第4版の出版にあたって
序文
はじめに

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.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 コールバック
        2.2.9 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 try...catch
        2.5.7 declare
        2.5.8 exitとreturn
        2.5.9 goto
    2.6 外部のコードの読み込み
    2.7 ウェブページへのPHPの埋め込み
        2.7.1 標準の(XML)スタイル
        2.7.2 SGMLスタイル
        2.7.3 コンテンツを直接出力する方法
    2.8 次へ

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.4.6 型宣言
    3.5 戻り値
    3.6 可変関数
    3.7 無名関数
    3.8 次へ

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.8.6 デリミタ
        4.8.7 マッチングの挙動
        4.8.8 文字クラス
        4.8.9 アンカー
        4.8.10 量指定子の貪欲さ
        4.8.11 キャプチャしないグループ
        4.8.12 後方参照
        4.8.13 後置オプション
        4.8.14 インラインオプション
        4.8.15 先読みと戻り読み
        4.8.16 無視
        4.8.17 条件式
        4.8.18 関数
        4.8.19 Perlの正規表現との違い
    4.9 次へ

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.9.5 配列を使ったデータ型の実装
        5.9.6 集合
        5.9.7 スタック
    5.10 Iteratorインターフェイス
    5.11 次へ

6章 オブジェクト
    6.1 オブジェクト
    6.2 用語の定義
    6.3 オブジェクトの作成
    6.4 プロパティおよびメソッドへのアクセス
    6.5 クラスの宣言
        6.5.1 メソッドの宣言
        6.5.2 プロパティの宣言
        6.5.3 定数の宣言
        6.5.4 継承
        6.5.5 インターフェイス
        6.5.6 トレイト
        6.5.7 抽象メソッド
        6.5.8 コンストラクタ
        6.5.9 デストラクタ
    6.6 無名クラス
    6.7 内部検査
        6.7.1 クラスについての調査
        6.7.2 オブジェクトについての調査
        6.7.3 内部検査のサンプルプログラム
    6.8 シリアライズ
    6.9 次へ

7章 日付と時刻
    7.1 次へ

8章 ウェブに関するテクニック
    8.1 HTTPの基本
    8.2 変数
    8.3 サーバーの情報
    8.4 フォームの処理
        8.4.1 メソッド
        8.4.2 パラメータ
        8.4.3 自己参照するページ
        8.4.4 固定フォーム
        8.4.5 複数選択形式のパラメータ
        8.4.6 複数選択パラメータの固定
        8.4.7 ファイルのアップロード
        8.4.8 フォームの入力チェック
    8.5 レスポンスヘッダの設定
        8.5.1 さまざまなコンテンツタイプ
        8.5.2 リダイレクト
        8.5.3 有効期限
        8.5.4 認証
    8.6 状態の管理
        8.6.1 クッキー
        8.6.2 セッション
        8.6.3 クッキーとセッションの組み合わせ
    8.7 SSL
    8.8 次へ

9章 データベース
    9.1 PHPによるデータベースへのアクセス
    9.2 リレーショナルデータベースとSQL
        9.2.1 PHP Data Objects
    9.3 MySQLiオブジェクトインターフェイス
        9.3.1 表示用データの取得
    9.4 SQLite
    9.5 ファイルレベルの直接操作
    9.6 MongoDB
        9.6.1 データの取得
        9.6.2 複雑なデータの追加
    9.7 次へ

10章 グラフィックス
    10.1 ページへの画像の埋め込み
    10.2 グラフィックについての基本概念
    10.3 画像の作成と描画
        10.3.1 画像処理プログラムの構造
        10.3.2 出力フォーマットの変更
        10.3.3 サポートされる画像フォーマットの確認
        10.3.4 既存のファイルの読み込み
        10.3.5 基本的な描画関数
    10.4 画像とテキスト
        10.4.1 フォント
        10.4.2 TrueTypeフォント
    10.5 動的に作成するボタン
        10.5.1 動的に作成したボタンのキャッシュ
        10.5.2 より高速なキャッシュ
    10.6 画像の拡大/縮小
    10.7 色の処理
        10.7.1 アルファチャネルの使用法
        10.7.2 色の特定
        10.7.3 トゥルーカラー画像のインデックス
        10.7.4 テキスト形式での画像データの表示
    10.8 次へ

11章 PDF
    11.1 PDF用の拡張モジュール
    11.2 ドキュメントとページ
        11.2.1 tFPDFライブラリを使うための準備
        11.2.2 シンプルな例
        11.2.3 ドキュメントの初期化
        11.2.4 基本的なテキスト出力:セルの使用
    11.3 テキスト
        11.3.1 座標
        11.3.2 テキストの属性
        11.3.3 ページヘッダ、ページフッタ、そしてクラスの拡張
        11.3.4 画像とリンク
        11.3.5 表とデータ
    11.4 次へ

12章 XML
    12.1 XMLとは
    12.2 XMLの作成
    12.3 XMLの解析
        12.3.1 要素ハンドラ
        12.3.2 文字データハンドラ
        12.3.3 処理命令
        12.3.4 エンティティハンドラ
        12.3.5 デフォルトのハンドラ
        12.3.6 オプション
        12.3.7 パーサーの使用法
        12.3.8 エラー
        12.3.9 メソッドのハンドラとしての使用法
        12.3.10 XML解析プログラムのサンプル
    12.4 DOMによるXMLの解析
    12.5 SimpleXMLによるXMLの解析
    12.6 XSLTによるXMLの変換
    12.7 次へ

13章 JSON
    13.1 JSONの使用
    13.2 PHPとJSONのシリアライズ
        13.2.1 オプション
    13.3 次へ

14章 セキュリティ
    14.1 セーフガード
        14.1.1 入力のフィルタリング
        14.1.2 出力のエスケープ
    14.2 セキュリティの脆弱性
        14.2.1 クロスサイトスクリプティング
        14.2.2 SQLインジェクション
        14.2.3 ファイル名
        14.2.4 セッションの固定化
        14.2.5 ファイルアップロードの罠
        14.2.6 ファイルへのアクセス制限
        14.2.7 PHPコードの問題
        14.2.8 シェルコマンドの弱点
        14.2.9 データの暗号化
    14.3 参考になるリソース
    14.4 セキュリティのまとめ
    14.5 次へ

15章 アプリケーションに関するテクニック
    15.1 コードライブラリ
    15.2 テンプレートシステム
    15.3 出力の処理方法
        15.3.1 出力バッファリング
        15.3.2 出力の圧縮
    15.4 パフォーマンスチューニング
        15.4.1 ベンチマーク
        15.4.2 プロファイリング
        15.4.3 実行時間の最適化
        15.4.4 メモリ使用量の最適化
        15.4.5 リバースプロキシとレプリケーション
    15.5 次へ

16章 ウェブサービス
    16.1 RESTクライアント
        16.1.1 レスポンス
        16.1.2 リソースの取得
        16.1.3 リソースの更新
        16.1.4 リソースの作成
        16.1.5 リソースの削除
    16.2 次へ

17章 PHPのデバッグ
    17.1 開発環境
    17.2 ステージング環境
    17.3 本番環境
    17.4 php.iniの設定
    17.5 エラー処理
        17.5.1 エラーの報告
        17.5.2 例外
        17.5.3 エラーの制御
        17.5.4 エラーを意図的に発生させる
        17.5.5 エラーハンドラの定義
    17.6 手動でのデバッグ
    17.7 エラーログ
    17.8 IDEを使ったデバッグ
    17.9 デバッグについての応用テクニック
    17.10 次へ

18章 異なるプラットフォームでのPHP
    18.1 WindowsとUnixで共用できるコードの書き方
        18.1.1 実行環境の調べ方
        18.1.2 複数プラットフォームに対応するパス
        18.1.3 サーバー環境
        18.1.4 メールの送信
        18.1.5 エンド・オブ・ライン(EOL)の扱い
        18.1.6 エンド・オブ・ファイル(EOF)の扱い
        18.1.7 外部コマンド
        18.1.8 プラットフォームに依存する拡張モジュール
    18.2 COMインターフェイスの使用
        18.2.1 背景知識
        18.2.2 PHPの関数
        18.2.3 APIの調べ方

索引