Book description
本書はPHPプログラマのバイブルとして多くのエンジニアに親しまれている定番解説書の改訂第4版です。強力な文字列処理や配列処理、オブジェクト指向プログラミングのサポート、さまざまな拡張モジュー ルと組み合わせてのMySQLやOracleといったデータベースの使用、グラフの描画、PDFファイルの作成、XMLファイルの解析、JSONなど、PHP言語の基本からプログラミングに関する実用的なヒントまで解説します。PHPに付属する多くの拡張モジュールの使用法を身につけ、PHPのウェブアプリケーションを設計して作成できるようになるでしょう。本格的なウェブ開発を行いたい方やPHPをしっかり学びたい方などに最適の一冊です。サンプルコードはバージョン8.1.6で動作確認を行っています。
Table of contents
- 表紙
- プログラミング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の調べ方
- 奥付
Product information
- Title: プログラミングPHP 第4版
- Author(s):
- Release date: April 2023
- Publisher(s): O'Reilly Japan, Inc.
- ISBN: 9784814400270
You might also like
book
大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス
データ管理と統合が急速に進化する中、複雑で緊密に結合したアーキテクチャから、現代のビジネスに対応できる、より柔軟なデータアーキテクチャへの移行が求められます。 本書は、変化が激しい時代でも長期的に持続可能な方法で大規模なデータ管理を行い、さまざまなユースケースに対応できる統合アーキテクチャを紹介します。この統合アーキテクチャを構成する、膨大なデータ利用に向けた「読み出し専用データストアアーキテクチャ」、リアルタイムなアプリケーションのための「APIアーキテクチャ」、大容量のスループットを実現する「ストリーミングアーキテクチャ」を詳述します。また技術開発、法規制、プライバシーに関する懸念など、データ管理全体を説明し、データガバナンスとセキュリティ、マスターデータ管理、セルフサービスとデータマーケットプレイス、メタデータの重要性について解説します。 企業のデータ戦略にかかわる本書は、アーキテクトはもちろん、経営者、ガバナンスチーム、データ分析・エンジニアリングチーム必携の一冊です。
book
SQLではじめるデータ分析 ―クエリで行う前処理、時系列解析、コホート分析、テキスト分析、異常検知
クラウドの普及とともに、SQLの利用範囲は拡大し、データサイエンティストもデータベースを直接扱う機会が増えています。本書は、データ分析に関わるSQLのテクニックを学び、分析プロセスにおいてSQLを最大限に活用するためのものです。時系列解析などでは、SQLが日付・時刻の比較や処理に長けており、威力を発揮できる最たるものです。本書ではデータの前処理から始め、時系列解析、コホート分析、テキスト分析、異常検知など、SQLの操作を通じて高度なテクニックまで学ぶことができる構成になっています。サンプルコードはGitHubからダウンロード可能で、実際に手を動かしながら学ぶことができます。
book
Sparkによる実践データ解析 ―大規模データのための機械学習事例集
本書は、データサイエンスの4人のエキスパートがSparkでの高度な分析方法を解説するとともに、より実践的なデータサイエンスを学ぶ書籍です。ビッグデータ分析におけるSparkの位置づけを紹介し、ベストな結果を得るためのデータの準備やモデルのチューニングについて解説します。またデータクレンジングのユースケースを通じてSparkとScalaによるデータ処理の基本を学習し、Sparkを使った機械学習の基礎や応用分野における広く使われる一般的なアルゴリズムを紹介します。日本語版では付録として高柳慎一氏と牧山幸史氏による「SparkRについて」と千葉立寛氏、小野寺民也氏による「SparkのJVM、システムレベルのチューニングによる高速化」を掲載。
book
プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける
本書は、顧客に価値を届けるプロダクトを作り出すプロダクトマネジメントについて学ぶ本です。プロダクトマネジメントを理解することで、企業がビジネス目標を達成しながら、顧客の課題を解決する方法を解説します。はじめにプロダクトマネージャーの役割と責任を定義し、優れた意思決定を促す戦略の立て方を紹介します。実験と最適化によって作るべきプロダクトを決めるプロセスを解説し、最後にプロダクト主導の組織を支えるための文化や方針を紹介します。ビルドトラップを避け、顧客の課題にフォーカスするプロダクトマネジメントの原則を解説する本書は、規模の大小を問わずすべてのプロダクトチーム、マネージャー、プログラマ、アーキテクト、デザイナ、マーケターに必携の一冊です。