プログラミングPHP 第4版

Book description

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

Table of contents

  1. 表紙
  2. プログラミングPHP 第4版の出版にあたって
  3. 序文
  4. はじめに
  5. 1章 PHPについて
  6.  1.1 PHPとは
  7.  1.2 PHPの歴史
  8.   1.2.1 PHPの誕生
  9.   1.2.2 PHPの発展
  10.  1.3 PHPのインストール
  11.  1.4 PHPの例
  12.   1.4.1 設定情報のページ
  13.   1.4.2 フォーム
  14.   1.4.3 データベース
  15.   1.4.4 グラフィックス
  16.  1.5 次へ
  17. 2章 PHP言語の基本
  18.  2.1 字句構造
  19.   2.1.1 大文字/小文字の区別
  20.   2.1.2 命令文とセミコロン
  21.   2.1.3 空白と改行
  22.   2.1.4 コメント
  23.   2.1.5 リテラル
  24.   2.1.6 識別子
  25.   2.1.7 キーワード
  26.  2.2 データ型
  27.   2.2.1 整数
  28.   2.2.2 浮動小数点数
  29.   2.2.3 文字列
  30.   2.2.4 論理値
  31.   2.2.5 配列
  32.   2.2.6 オブジェクト
  33.   2.2.7 リソース
  34.   2.2.8 コールバック
  35.   2.2.9 NULL
  36.  2.3 変数
  37.   2.3.1 可変変数
  38.   2.3.2 変数への参照
  39.   2.3.3 変数のスコープ
  40.   2.3.4 ガベージコレクション
  41.  2.4 式と演算子
  42.   2.4.1 オペランドの数
  43.   2.4.2 演算子の優先順位
  44.   2.4.3 演算子の結合時の評価順
  45.   2.4.4 暗黙のキャスト
  46.   2.4.5 算術演算
  47.   2.4.6 文字列連結演算子
  48.   2.4.7 インクリメント演算子とデクリメント演算子
  49.   2.4.8 比較演算子
  50.   2.4.9 ビット演算子
  51.   2.4.10 論理演算子
  52.   2.4.11 キャスト演算子
  53.   2.4.12 代入演算子
  54.   2.4.13 その他の演算子
  55.  2.5 フロー制御文
  56.   2.5.1 if
  57.   2.5.2 switch
  58.   2.5.3 while
  59.   2.5.4 for
  60.   2.5.5 foreach
  61.   2.5.6 try...catch
  62.   2.5.7 declare
  63.   2.5.8 exitとreturn
  64.   2.5.9 goto
  65.  2.6 外部のコードの読み込み
  66.  2.7 ウェブページへのPHPの埋め込み
  67.   2.7.1 標準の(XML)スタイル
  68.   2.7.2 SGMLスタイル
  69.   2.7.3 コンテンツを直接出力する方法
  70.  2.8 次へ
  71. 3章 関数
  72.  3.1 関数の呼び出し
  73.  3.2 関数の定義
  74.  3.3 変数のスコープ
  75.   3.3.1 グローバル変数
  76.   3.3.2 スタティック変数
  77.  3.4 関数のパラメータ
  78.   3.4.1 値渡しのパラメータ
  79.   3.4.2 参照渡しのパラメータ
  80.   3.4.3 デフォルトパラメータ
  81.   3.4.4 可変パラメータ
  82.   3.4.5 パラメータの省略
  83.   3.4.6 型宣言
  84.  3.5 戻り値
  85.  3.6 可変関数
  86.  3.7 無名関数
  87.  3.8 次へ
  88. 4章 文字列
  89.  4.1 文字列定数のクォート処理
  90.   4.1.1 変数の展開
  91.   4.1.2 シングルクォートで囲まれた文字列
  92.   4.1.3 ダブルクォートで囲まれた文字列
  93.   4.1.4 ヒアドキュメント
  94.  4.2 文字列の表示
  95.   4.2.1 echo
  96.   4.2.2 print()
  97.   4.2.3 printf()
  98.   4.2.4 print_r()とvar_dump()
  99.  4.3 個別の文字へのアクセス
  100.  4.4 文字列のお掃除
  101.   4.4.1 空白の除去
  102.   4.4.2 大文字/小文字の変換
  103.  4.5 エンコードとエスケープ
  104.   4.5.1 HTML
  105.   4.5.2 URL
  106.   4.5.3 SQL
  107.   4.5.4 C言語方式の文字列のエンコード
  108.  4.6 文字列の比較
  109.   4.6.1 完全一致
  110.   4.6.2 類似性
  111.  4.7 文字列の操作と検索
  112.   4.7.1 一部の取り出し
  113.   4.7.2 その他の文字列関数
  114.   4.7.3 文字列の分解
  115.   4.7.4 文字列の検索関数
  116.  4.8 正規表現
  117.   4.8.1 正規表現の基本
  118.   4.8.2 文字クラス
  119.   4.8.3 選択肢
  120.   4.8.4 繰り返し
  121.   4.8.5 サブパターン
  122.   4.8.6 デリミタ
  123.   4.8.7 マッチングの挙動
  124.   4.8.8 文字クラス
  125.   4.8.9 アンカー
  126.   4.8.10 量指定子の貪欲さ
  127.   4.8.11 キャプチャしないグループ
  128.   4.8.12 後方参照
  129.   4.8.13 後置オプション
  130.   4.8.14 インラインオプション
  131.   4.8.15 先読みと戻り読み
  132.   4.8.16 無視
  133.   4.8.17 条件式
  134.   4.8.18 関数
  135.   4.8.19 Perlの正規表現との違い
  136.  4.9 次へ
  137. 5章 配列
  138.  5.1 インデックス配列と連想配列
  139.  5.2 配列の要素の識別
  140.  5.3  配列へのデータの格納
  141.   5.3.1 配列の末尾への値の追加
  142.   5.3.2 範囲指定による配列への代入
  143.   5.3.3 配列の大きさの取得
  144.   5.3.4 配列要素のパディング
  145.  5.4 多次元配列
  146.  5.5 多次元配列の展開
  147.   5.5.1 配列のスライス
  148.   5.5.2 配列の分割
  149.   5.5.3 キーと値
  150.   5.5.4 ある要素が存在するかどうかのチェック
  151.   5.5.5 配列の要素の削除と追加
  152.  5.6 配列と変数との変換
  153.   5.6.1 配列からの変数の作成
  154.   5.6.2 変数からの配列の作成
  155.  5.7 配列の順次処理
  156.   5.7.1 foreach構文
  157.   5.7.2 イテレータ関数
  158.   5.7.3 forループの使用
  159.   5.7.4 配列の各要素に対する関数の呼び出し
  160.   5.7.5 配列の縮退
  161.   5.7.6 値の検索
  162.  5.8 配列のソート
  163.   5.8.1 配列を一度にソート
  164.   5.8.2 自然順でのソート
  165.   5.8.3 複数の配列の一括ソート
  166.   5.8.4 配列の逆転
  167.   5.8.5 順番のランダム化
  168.  5.9 配列全体に対する処理
  169.   5.9.1 配列の和の計算
  170.   5.9.2 2つの配列のマージ
  171.   5.9.3 2つの配列の差の計算
  172.   5.9.4 配列の要素のフィルタリング
  173.   5.9.5 配列を使ったデータ型の実装
  174.   5.9.6 集合
  175.   5.9.7 スタック
  176.  5.10 Iteratorインターフェイス
  177.  5.11 次へ
  178. 6章 オブジェクト
  179.  6.1 オブジェクト
  180.  6.2 用語の定義
  181.  6.3 オブジェクトの作成
  182.  6.4 プロパティおよびメソッドへのアクセス
  183.  6.5 クラスの宣言
  184.   6.5.1 メソッドの宣言
  185.   6.5.2 プロパティの宣言
  186.   6.5.3 定数の宣言
  187.   6.5.4 継承
  188.   6.5.5 インターフェイス
  189.   6.5.6 トレイト
  190.   6.5.7 抽象メソッド
  191.   6.5.8 コンストラクタ
  192.   6.5.9 デストラクタ
  193.  6.6 無名クラス
  194.  6.7 内部検査
  195.   6.7.1 クラスについての調査
  196.   6.7.2 オブジェクトについての調査
  197.   6.7.3 内部検査のサンプルプログラム
  198.  6.8 シリアライズ
  199.  6.9 次へ
  200. 7章 日付と時刻
  201.  7.1 次へ
  202. 8章 ウェブに関するテクニック
  203.  8.1 HTTPの基本
  204.  8.2 変数
  205.  8.3 サーバーの情報
  206.  8.4 フォームの処理
  207.   8.4.1 メソッド
  208.   8.4.2 パラメータ
  209.   8.4.3 自己参照するページ
  210.   8.4.4 固定フォーム
  211.   8.4.5 複数選択形式のパラメータ
  212.   8.4.6 複数選択パラメータの固定
  213.   8.4.7 ファイルのアップロード
  214.   8.4.8 フォームの入力チェック
  215.  8.5 レスポンスヘッダの設定
  216.   8.5.1 さまざまなコンテンツタイプ
  217.   8.5.2 リダイレクト
  218.   8.5.3 有効期限
  219.   8.5.4 認証
  220.  8.6 状態の管理
  221.   8.6.1 クッキー
  222.   8.6.2 セッション
  223.   8.6.3 クッキーとセッションの組み合わせ
  224.  8.7 SSL
  225.  8.8 次へ
  226. 9章 データベース
  227.  9.1 PHPによるデータベースへのアクセス
  228.  9.2 リレーショナルデータベースとSQL
  229.   9.2.1 PHP Data Objects
  230.  9.3 MySQLiオブジェクトインターフェイス
  231.   9.3.1 表示用データの取得
  232.  9.4 SQLite
  233.  9.5  ファイルレベルの直接操作
  234.  9.6 MongoDB
  235.   9.6.1 データの取得
  236.   9.6.2 複雑なデータの追加
  237.  9.7 次へ
  238. 10章 グラフィックス
  239.  10.1 ページへの画像の埋め込み
  240.  10.2 グラフィックについての基本概念
  241.  10.3 画像の作成と描画
  242.   10.3.1 画像処理プログラムの構造
  243.   10.3.2 出力フォーマットの変更
  244.   10.3.3 サポートされる画像フォーマットの確認
  245.   10.3.4 既存のファイルの読み込み
  246.   10.3.5 基本的な描画関数
  247.  10.4 画像とテキスト
  248.   10.4.1 フォント
  249.   10.4.2 TrueTypeフォント
  250.  10.5 動的に作成するボタン
  251.   10.5.1 動的に作成したボタンのキャッシュ
  252.   10.5.2 より高速なキャッシュ
  253.  10.6 画像の拡大/縮小
  254.  10.7 色の処理
  255.   10.7.1 アルファチャネルの使用法
  256.   10.7.2 色の特定
  257.   10.7.3 トゥルーカラー画像のインデックス
  258.   10.7.4 テキスト形式での画像データの表示
  259.  10.8 次へ
  260. 11章 PDF
  261.  11.1 PDF用の拡張モジュール
  262.  11.2 ドキュメントとページ
  263.   11.2.1 tFPDFライブラリを使うための準備
  264.   11.2.2 シンプルな例
  265.   11.2.3 ドキュメントの初期化
  266.   11.2.4 基本的なテキスト出力:セルの使用
  267.  11.3 テキスト
  268.   11.3.1 座標
  269.   11.3.2 テキストの属性
  270.   11.3.3 ページヘッダ、ページフッタ、そしてクラスの拡張
  271.   11.3.4 画像とリンク
  272.   11.3.5 表とデータ
  273.  11.4 次へ
  274. 12章 XML
  275.  12.1 XMLとは
  276.  12.2 XMLの作成
  277.  12.3 XMLの解析
  278.   12.3.1 要素ハンドラ
  279.   12.3.2 文字データハンドラ
  280.   12.3.3 処理命令
  281.   12.3.4 エンティティハンドラ
  282.   12.3.5 デフォルトのハンドラ
  283.   12.3.6 オプション
  284.   12.3.7 パーサーの使用法
  285.   12.3.8 エラー
  286.   12.3.9 メソッドのハンドラとしての使用法
  287.   12.3.10 XML解析プログラムのサンプル
  288.  12.4 DOMによるXMLの解析
  289.  12.5 SimpleXMLによるXMLの解析
  290.  12.6 XSLTによるXMLの変換
  291.  12.7 次へ
  292. 13章 JSON
  293.  13.1 JSONの使用
  294.  13.2 PHPとJSONのシリアライズ
  295.   13.2.1 オプション
  296.  13.3 次へ
  297. 14章 セキュリティ
  298.  14.1 セーフガード
  299.   14.1.1 入力のフィルタリング
  300.   14.1.2 出力のエスケープ
  301.  14.2 セキュリティの脆弱性
  302.   14.2.1 クロスサイトスクリプティング
  303.   14.2.2 SQLインジェクション
  304.   14.2.3 ファイル名
  305.   14.2.4 セッションの固定化
  306.   14.2.5 ファイルアップロードの罠
  307.   14.2.6 ファイルへのアクセス制限
  308.   14.2.7 PHPコードの問題
  309.   14.2.8 シェルコマンドの弱点
  310.   14.2.9 データの暗号化
  311.  14.3 参考になるリソース
  312.  14.4 セキュリティのまとめ
  313.  14.5 次へ
  314. 15章 アプリケーションに関するテクニック
  315.  15.1 コードライブラリ
  316.  15.2 テンプレートシステム
  317.  15.3 出力の処理方法
  318.   15.3.1 出力バッファリング
  319.   15.3.2 出力の圧縮
  320.  15.4 パフォーマンスチューニング
  321.   15.4.1 ベンチマーク
  322.   15.4.2 プロファイリング
  323.   15.4.3 実行時間の最適化
  324.   15.4.4 メモリ使用量の最適化
  325.   15.4.5 リバースプロキシとレプリケーション
  326.  15.5 次へ
  327. 16章 ウェブサービス
  328.  16.1 RESTクライアント
  329.   16.1.1 レスポンス
  330.   16.1.2 リソースの取得
  331.   16.1.3 リソースの更新
  332.   16.1.4 リソースの作成
  333.   16.1.5 リソースの削除
  334.  16.2 次へ
  335. 17章 PHPのデバッグ
  336.  17.1 開発環境
  337.  17.2 ステージング環境
  338.  17.3 本番環境
  339.  17.4 php.iniの設定
  340.  17.5 エラー処理
  341.   17.5.1 エラーの報告
  342.   17.5.2 例外
  343.   17.5.3 エラーの制御
  344.   17.5.4 エラーを意図的に発生させる
  345.   17.5.5 エラーハンドラの定義
  346.  17.6 手動でのデバッグ
  347.  17.7 エラーログ
  348.  17.8 IDEを使ったデバッグ
  349.  17.9 デバッグについての応用テクニック
  350.  17.10 次へ
  351. 18章 異なるプラットフォームでのPHP
  352.  18.1 WindowsとUnixで共用できるコードの書き方
  353.   18.1.1 実行環境の調べ方
  354.   18.1.2 複数プラットフォームに対応するパス
  355.   18.1.3 サーバー環境
  356.   18.1.4 メールの送信
  357.   18.1.5 エンド・オブ・ライン(EOL)の扱い
  358.   18.1.6 エンド・オブ・ファイル(EOF)の扱い
  359.   18.1.7 外部コマンド
  360.   18.1.8 プラットフォームに依存する拡張モジュール
  361.  18.2 COMインターフェイスの使用
  362.   18.2.1 背景知識
  363.   18.2.2 PHPの関数
  364.   18.2.3 APIの調べ方
  365. 奥付

Product information

  • Title: プログラミングPHP 第4版
  • Author(s): Kevin Tatroe, Peter MacIntyre, 永井 勝則, 中野 圭
  • Release date: April 2023
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784814400270

You might also like

book

大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス

by Piethein Strengholt, 村上 列

データ管理と統合が急速に進化する中、複雑で緊密に結合したアーキテクチャから、現代のビジネスに対応できる、より柔軟なデータアーキテクチャへの移行が求められます。 本書は、変化が激しい時代でも長期的に持続可能な方法で大規模なデータ管理を行い、さまざまなユースケースに対応できる統合アーキテクチャを紹介します。この統合アーキテクチャを構成する、膨大なデータ利用に向けた「読み出し専用データストアアーキテクチャ」、リアルタイムなアプリケーションのための「APIアーキテクチャ」、大容量のスループットを実現する「ストリーミングアーキテクチャ」を詳述します。また技術開発、法規制、プライバシーに関する懸念など、データ管理全体を説明し、データガバナンスとセキュリティ、マスターデータ管理、セルフサービスとデータマーケットプレイス、メタデータの重要性について解説します。 企業のデータ戦略にかかわる本書は、アーキテクトはもちろん、経営者、ガバナンスチーム、データ分析・エンジニアリングチーム必携の一冊です。

book

SQLではじめるデータ分析 ―クエリで行う前処理、時系列解析、コホート分析、テキスト分析、異常検知

by Cathy Tanimura, 大橋 真也, 嶋田 健志, 木下 哲也

クラウドの普及とともに、SQLの利用範囲は拡大し、データサイエンティストもデータベースを直接扱う機会が増えています。本書は、データ分析に関わるSQLのテクニックを学び、分析プロセスにおいてSQLを最大限に活用するためのものです。時系列解析などでは、SQLが日付・時刻の比較や処理に長けており、威力を発揮できる最たるものです。本書ではデータの前処理から始め、時系列解析、コホート分析、テキスト分析、異常検知など、SQLの操作を通じて高度なテクニックまで学ぶことができる構成になっています。サンプルコードはGitHubからダウンロード可能で、実際に手を動かしながら学ぶことができます。

book

Sparkによる実践データ解析 ―大規模データのための機械学習事例集

by Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills, 石川 有, Sky株式会社 玉川 竜司

本書は、データサイエンスの4人のエキスパートがSparkでの高度な分析方法を解説するとともに、より実践的なデータサイエンスを学ぶ書籍です。ビッグデータ分析におけるSparkの位置づけを紹介し、ベストな結果を得るためのデータの準備やモデルのチューニングについて解説します。またデータクレンジングのユースケースを通じてSparkとScalaによるデータ処理の基本を学習し、Sparkを使った機械学習の基礎や応用分野における広く使われる一般的なアルゴリズムを紹介します。日本語版では付録として高柳慎一氏と牧山幸史氏による「SparkRについて」と千葉立寛氏、小野寺民也氏による「SparkのJVM、システムレベルのチューニングによる高速化」を掲載。

book

プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける

by Melissa Perri, 吉羽 龍太郎

本書は、顧客に価値を届けるプロダクトを作り出すプロダクトマネジメントについて学ぶ本です。プロダクトマネジメントを理解することで、企業がビジネス目標を達成しながら、顧客の課題を解決する方法を解説します。はじめにプロダクトマネージャーの役割と責任を定義し、優れた意思決定を促す戦略の立て方を紹介します。実験と最適化によって作るべきプロダクトを決めるプロセスを解説し、最後にプロダクト主導の組織を支えるための文化や方針を紹介します。ビルドトラップを避け、顧客の課題にフォーカスするプロダクトマネジメントの原則を解説する本書は、規模の大小を問わずすべてのプロダクトチーム、マネージャー、プログラマ、アーキテクト、デザイナ、マーケターに必携の一冊です。