目次

  • 第1章 準備

    • 1.1 サーバー環境
      • 001 サーバーのPHP情報を知りたい
      • 002 php.iniとは?
      • 003 文字エンコードを統一したい
      • 004 日本語関連の設定をしたい
    • 1.2 開発環境
      • 005 PHPマニュアルを使いたい
      • 006 開発環境を作りたい
      • 007 XAMPPをインストールしたい
      • 008 MAMPをインストールしたい
      • 009 WindowsにNetBeansをインストールしたい
      • 010 Mac OS XにNetBeansをインストールしたい
    • 1.3 本番環境
      • 011 レンタルサーバーのPHPを設定したい
      • 012 本番環境でのエラー出力の設定方法は?
  • 第2章 PHPの基本構文

    • 2.1 変数
      • 013 変数と文字列を出力したい
      • 014 echo <<<END、$変数 = <<<ENDって何ですか?
      • 015 変数がセットされているかどうか調べたい
      • 016 変数の型を調べたい
      • 017 (int)、(string)って何ですか?
      • 018 nullって何ですか?
      • 019 =&って何ですか?
      • 020 環境変数の情報を取得するには?
    • 2.2 定数
      • 021 定数を使用するには?
      • 022 定義済みの定数を知りたい
    • 2.3 条件分岐
      • 023 条件で処理を分岐するには?
      • 024 switch文の使い方を知りたい
      • 025 「条件式 ? 式1 : 式2」って何ですか?
      • 026 2つの値を比較するには?
      • 027 ==と===、!=と!==の違いは?
      • 028 &&、||、!って何ですか?
    • 2.4 繰り返し処理
      • 029 PHPの繰り返し構文を知りたい
      • 030 繰り返し処理の途中でループを抜けたい
      • 031 繰り返し処理の途中でスキップしたい
    • 2.5 関数
      • 032 関数を定義したい
      • 033 デフォルト引数値を指定したい
      • 034 関数の引数に付いた&って何ですか?
      • 035 引数の数が変わる関数を定義したい
      • 036 変数のスコープを知りたい
      • 037 静的変数とは?
      • 038 関数が定義済みかどうか調べたい
      • 039 関数から複数の値を受け取りたい
      • 040 無名関数って何ですか?
    • 2.6 ファイルのインクルード
      • 041 他のファイルを取り込んで利用したい
    • 2.7 エラー処理
      • 042 エラーレベルを設定したい
      • 043 エラーメッセージを送信したい
      • 044 ユーザーエラーを発生させたい
  • 第3章 PHPの基本テクニック

    • 3.1 文字列
      • 045 文字列の一部分を取り出したい
      • 046 特定の文字列が含まれているか調べたい
      • 047 文字列を置き換えたい
      • 048 正規表現によるパターンマッチをしたい
      • 049 正規表現による複雑な文字列の置き換えをしたい
      • 050 文字列を繰り返し表示したい
      • 051 アルファベットを小文字から大文字に変換したい
      • 052 アルファベットを大文字から小文字に変換したい
      • 053 全角英数字を半角に変換したい
      • 054 半角英数字を全角に変換したい
      • 055 カナ文字を全角かなや半角カナに変換したい
      • 056 文字列の前後の空白を削除したい
      • 057 文字列の長さを調べたい
      • 058 文字エンコードを変換したい
      • 059 ハッシュ値を求めたい
      • 060 ランダムな文字列を生成したい
      • 061 ユニークなIDを作成したい
    • 3.2 数値
      • 062 数値の丸め(四捨五入)、切り上げ、切り捨てをしたい
      • 063 数値を3桁ごとにカンマ区切りしたい
      • 064 数値を必ず小数点以下まで表示させたい
      • 065 乱数を生成したい
    • 3.3 日付時刻
      • 066 日付や時刻の一部を取り出して使いたい
      • 067 日付の表示形式を変えたり、日付の加減算をしたい
      • 068 現在のタイムスタンプを取得したい
      • 069 日付をタイムスタンプに変換したい
      • 070 文字列表現の日付をタイムスタンプに変換したい
      • 071 日付が正しいかどうかチェックしたい
      • 072 指定した日付の曜日を求めたい
      • 073 月末日を求めたい
      • 074 締め日を求めたい
      • 075 「第3月曜日」を求めたい
      • 076 指定した日付の年度を求めたい
      • 077 西暦を和暦にしたい
      • 078 生年月日から現在の年齢を求めたい
      • 079 カレンダーを表示したい
      • 080 日付セレクトメニューを表示したい
    • 3.4 配列
      • 081 配列を使いたい
      • 082 配列の内容をデバッグ表示したい
      • 083 配列を結合したい
      • 084 配列を並べ替えたい
      • 085 配列を逆順にしたい
      • 086 連想配列を値で並べ替えたい
      • 087 連想配列を添え字で並べ替えたい
      • 088 配列の先頭に値を追加したい
      • 089 配列の末尾に値を追加したい
      • 090 配列の指定箇所に値を追加したい
      • 091 配列の先頭を取り除きたい
      • 092 配列の末尾を取り除きたい
      • 093 配列の指定範囲を取り除きたい
      • 094 配列の指定範囲を置き換えたい
      • 095 配列の一部を取り出したい
      • 096 配列の中から条件に合うデータのみを抜き出した配列を作りたい
      • 097 配列に値が存在するか調べたい
      • 098 配列の値を一度に複数の変数へセットしたい
      • 099 配列のすべての要素を一括処理したい
      • 100 配列を連結して1つの文字列にしたい
      • 101 カンマやスペース区切りの文字列を分割して配列にしたい
    • 3.5 PHPの設定
      • 102 PHPの設定を調べたい
      • 103 PHPの設定を一時的に変更したい
    • 3.6 ベンチマーク
      • 104 ベンチマークを取得したい
      • 105 関数の平均実行時間を測定したい
    • 3.7 コマンドライン
      • 106 コマンドラインから実行したい
  • 第4章 ファイルとディレクトリ

    • 4.1 ファイル
      • 107 ファイルを扱う処理の流れは?
      • 108 日別のログファイルを作成したい
      • 109 一時ファイルにデータを書き込みたい
      • 110 fopen()関数を使わずにファイルにデータを書き込みたい
      • 111 ファイルのデータを取得したい
      • 112 ファイルから指定バイト数ずつ取得したい
      • 113 ファイルのデータをまとめて取得したい
      • 114 ファイルを使ってアクセスカウンタを作成したい
      • 115 ファイルの最終更新時刻を取得したい
      • 116 ファイルのサイズを取得したい
      • 117 ファイルの拡張子を取得したい
      • 118 パス名からファイル名を取得したい
      • 119 ファイルが存在するか調べたい
      • 120 ファイルが読み取り可能か調べたい
      • 121 ファイルが書き込み可能か調べたい
      • 122 ファイルをコピーしたい
      • 123 ファイルを削除したい
      • 124 ファイルの種類を判定したい
    • 4.2 ディレクトリ
      • 125 ディレクトリを作成したい
      • 126 パス名からディレクトリ名を取得したい
      • 127 絶対パス名を取得したい
      • 128 ディレクトリが使用可能な容量を取得したい
      • 129 ディレクトリを削除したい
      • 130 ディレクトリ内のディレクトリやファイル名を取得したい
      • 131 ディレクトリ内の画像を一覧表示したい
    • 4.3 PDFファイル
      • 132 PDFファイルを生成したい
      • 133 PDFにリンク文字列を書き込みたい
      • 134 PDFに表を書き込みたい
      • 135 PDFに直線を書き込みたい
      • 136 PDFに画像を挿入したい
      • 137 テキストファイルをPDFに変換したい
      • 138 既存のPDFファイルを元にPDFファイルを生成したい
    • 4.4 CSVファイル
      • 139 CSVファイルを読み込みたい
      • 140 CSVファイルを出力したい
    • 4.5 画像ファイル
      • 141 画像を作成したい
      • 142 画像をファイルとして保存したい
      • 143 既存ファイルから画像を生成したい
      • 144 画像のサムネイルを生成したい
      • 145 画像にテキストを追加したい
      • 146 画像に点を描き込みたい
      • 147 画像のサイズを取得したい
    • 4.6 グラフ
      • 148 グラフを生成したい
      • 149 折れ線グラフを生成したい
      • 150 棒グラフを生成したい
      • 151 円グラフを生成したい
      • 152 組織図を生成したい
  • 第5章 クラスとオブジェクト

    • 5.1 クラスの基礎
      • 153 クラスとは?
      • 154 クラスを使いたい
      • 155 「$this」や「->」とは何ですか?
      • 156 コンストラクタとは?
      • 157 クラスの継承とは?
    • 5.2 クラスの活用
      • 158 静的メソッド、静的プロパティって何ですか?
      • 159 オートロードって何ですか?
      • 160 「self::」「parent::」「static::」とは何ですか?
      • 161 クラス内で定数を使用したい
      • 162 マジックメソッドって何ですか?
      • 163 オブジェクトを保存したい
      • 164 タイプヒンティングとは何ですか?
      • 165 抽象クラスとは何ですか?
      • 166 インターフェイスとは何ですか?
    • 5.3 名前空間
    • 5.4 例外処理
      • 169 例外処理とは何ですか?
      • 170 複数の例外を分けて処理したい
      • 171 通常のエラーを例外で処理したい
    • 5.5 SPL
      • 172 SPLって何ですか?
      • 173 オブジェクトを配列のように扱いたい
      • 174 イテレータって何ですか?
  • 第6章 ライブラリ

    • 6.1 PEARの使い方
      • 175 PEARを使いたい
      • 176 PEARをアップグレードしたい
    • 6.2 Composerの使い方
      • 177 Composerって何ですか?
      • 178 Composerをインストールしたい
      • 179 Composerでパッケージを管理したい
    • 6.3 Smartyの使い方
      • 180 Smartyを使いたい
      • 181 テンプレートを分割したい
      • 182 フィルタを使いたい
      • 183 繰り返し処理したい
      • 184 条件分岐したい
      • 185 スーパーグローバル変数を取得したい
      • 186 メールアドレスの難読化でスパム対策したい
    • 6.4 フレームワーク
      • 187 フレームワークって何ですか?
  • 第7章 Webプログラミング

    • 7.1 フォームの基礎
      • 188 フォームを使いたい
      • 189 テキストボックスを使いたい
      • 190 テキストエリアを使いたい
      • 191 パスワードボックスを使いたい
      • 192 セレクトメニューを使いたい
      • 193 ラジオボタンを使いたい
      • 194 チェックボックスを使いたい
      • 195 隠しフィールドを使いたい
      • 196 ファイル名入力ボックスを使いたい
      • 197 ボタンを使いたい
      • 198 HTMLで必須入力のチェックをしたい
      • 199 日付フィールドを使いたい
      • 200 テキストボックスにプレースホルダを表示させたい
      • 201 テキストボックスに入力候補を表示させたい
    • 7.2 フォームの実際
      • 202 複数選択可能なセレクトメニューやチェックボックスの値を受け取りたい
      • 203 日付入力のためのフォームを生成したい
      • 204 データ入力時のみデータを処理するには?
      • 205 特定の文字列を含むかどうかチェックしたい
      • 206 文字数や桁数をチェックしたい
      • 207 数値かどうかをチェックしたい
      • 208 金額にカンマを付けたい
      • 209 ファイルの拡張子をチェックしたい
      • 210 メールアドレスの形式をチェックしたい
      • 211 配列からラジオボタンを生成したい
      • 212 データベースからセレクトメニューを生成したい
      • 213 簡単なログインフォームを作成したい
      • 214 メール送信フォームを作成したい
      • 215 magic_quotes_gpcがOnでもOffでも動作するようにしたい
    • 7.3 入力データの加工
      • 216 タグを取り除きたい
      • 217 複数の検索キーワードで検索したい
      • 218 複数選択されたデータを検索したい
      • 219 「YYYY/MM/DD」形式の日付を利用したい
      • 220 パスワードをハッシュ化したい
    • 7.4 データ出力時の処理
      • 221 安全にブラウザで値を表示したい
      • 222 URLの一部に日本語を利用したい
      • 223 改行タグを改行文字の前に挿入したい
    • 7.5 Cookie
      • 224 データをCookieに保存したい
      • 225 Cookieのデータを読み取りたい
    • 7.6 セッション
      • 226 セッションを使いたい
      • 227 セッション名を取得/設定したい
      • 228 セッションIDを取得したい
      • 229 セッション変数を使いたい
      • 230 セッション変数を破棄したい
      • 231 セッションCookieのパラメータを設定したい
      • 232 セッションを破棄したい
    • 7.7 ファイルアップロード
      • 233 複数の画像ファイルをアップロードしたい
      • 234 ファイルをダウンロードさせたい
    • 7.8 メール処理
      • 235 添付ファイル付きのメールを送りたい
    • 7.9 ネットワーク
      • 236 IPアドレスからホスト名、ホスト名からIPアドレスを取得したい
    • 7.10 HTTPヘッダー
      • 237 HTTPヘッダーを送信したい
      • 238 別のページに飛ばしたい
      • 239 キャッシュを無効にしたい
    • 7.11 Web API
      • 240 JSON形式のデータを返すWeb APIを作りたい
      • 241 RSSやXML文書を解析したい
      • 242 JSON形式のデータを返すWeb APIを利用したい
    • 7.12 その他
      • 243 URLの構成要素を解析したい
      • 244 処理を一時停止したい
  • 第8章 データベース

    • 8.1 phpMyAdmin
      • 245 phpMyAdminを使いたい
      • 246 データベースを作成したい
      • 247 データベースユーザーを作成したい
      • 248 テーブルを作成したい
      • 249 カラムを変更したい
      • 250 カラムを追加したい
      • 251 カラムを削除したい
      • 252 レコードを挿入したい
      • 253 レコードを表示したい
      • 254 レコードの編集をしたい
      • 255 レコードを削除したい
      • 256 テーブルを削除したい
      • 257 データベースを削除したい
      • 258 データベースユーザーを削除したい
      • 259 SQL文を実行したい
    • 8.2 データベース(PDO)
      • 260 データベースに接続したい
      • 261 複数のレコードを取得したい
      • 262 1行だけレコードを取得したい
      • 263 データベースに登録済みかどうかチェックしたい
      • 264 レコードをオブジェクトとして取得したい
      • 265 新規レコードを作成したい
      • 266 イメージデータを格納したい
      • 267 レコードを更新したい
      • 268 レコードを削除したい
      • 269 クエリ結果のメモリを解放したい
      • 270 テーブルを作成したい
  • 第9章 自動テスト

    • 9.1 ユニットテスト
      • 271 ユニットテストとは何ですか?
      • 272 PHPUnitを使いたい
      • 273 複数のテストデータを提供しまとめてテストしたい
      • 274 フィクスチャとは何ですか?
      • 275 プライベートメソッドをテストしたい
      • 276 データベースをテストしたい
      • 277 テストカバー率を知りたい
    • 9.2 ブラウザテスト
      • 278 Seleniumでブラウザテストをしたい
  • 第10章 セキュリティ

    • 10.1 セキュリティ対策の基本
      • 279 セキュリティ対策の基本を知りたい
      • 280 入力値の検証方法を知りたい
      • 281 文字列を比較する場合の注意点を知りたい
      • 282 正規表現の注意点を知りたい
    • 10.2 PHPの設定
    • 10.3 セキュリティ対策
      • 285 パラメータ改竄とは?
      • 286 XSSとは?
      • 287 XSS対策をしたい
      • 288 XSS対策についてさらに詳しく知りたい
      • 289 CSRFとは?
      • 290 クリックジャッキングとは?
      • 291 nullバイト攻撃とは?
      • 292 SQLインジェクションとは?
      • 293 OSコマンドインジェクションとは?
      • 294 ディレクトリトラバーサルとは?
      • 295 インクルード攻撃とは?
      • 296 ファイルアップロードの注意点を知りたい
      • 297 evalインジェクションとは?
      • 298 メールヘッダーインジェクションとは?
      • 299 Cookieを安全に利用したい
      • 300 セッションハイジャック対策をしたい
      • 301 セッション固定化攻撃を防ぎたい
      • 302 SSL利用時にセッションを安全に利用したい
      • 303 キャッシュからの情報漏洩とは何ですか?
      • 304 Ajaxのセキュリティについて知りたい
      • 305 JSONのセキュリティについて知りたい
  • 第11章 トラブルシューティング

    • 11.1 エラー表示など
      • 306 エラーが表示された場合は?
      • 307 ステップ実行でデバッグしたい
      • 308 ページが真っ白で何も表示されない
      • 309 大量のNoticeエラーが表示される
      • 310 「Warning: Cannot modify header information ...」エラーが表示される
      • 311 特定の処理においてエラーを抑制したい
    • 11.2 文字化け
      • 312 日本語のWebページが文字化けする
      • 313 フォームから送信された値が文字化けしたり表示されない
      • 314 フォームから送信された「申込」が「申\込」になる
      • 315 日時だけが文字化けする