河合 勝彦 著
鈴木 憲治 著
安藤 建一 著
山田 直明 著
八木 照朗 著
山本 義之 著
本書は、PHP言語を日々実践の場で利用している方々へ贈る、必須のレシピ集であり、また初級レベルのPHP開発者が中級レベルを目指すために必要な秘訣やヒントを一杯詰め込んだ、便利な逆引き本です。
PHP言語の習得は難しいものではありません。しかし誰しもが、つまづいて諦めた悩ましい疑問の1つや2つはあるはずです。また、PHPを使い始めてまもない人や、開発の経験が浅い方は、そもそも何が自分の成長の壁になっているかがわかりません。本書はそうした見えない壁に悩む、初級レベルを脱皮して開発の勘どころをわきまえた中級レベルを目指す方々を対象に、実践の場で役立つ関数、ライブラリ、サンプルコードを厳選してまとめたものです。さらに、快適な開発に必要な環境整備や、成果物を公表するために必要な日本の主要レンタルサーバーの特徴についても解説しています。
学習と実践の溝を埋め、浅い開発の経験をカバーするように、本書には、プロの開発現場のノウハウが濃縮されています。なお、主に開発者向けに書かれてはいますが、専門学校や大学のプログラミング学習用サブテキストとして利用することも可能です。リファレンス用途のインデックスの充実化はもちろんのこと、アタマと手の両方を使って学ぶことを望まれる方のために、サンプルファイルもすべて用意されています。
第1章 準備
1.1 サーバー環境
001 サーバーのPHP情報を知りたい
002 php.iniとは?
003 文字エンコードを統一したい
004 日本語関連の設定をしたい
1.2 開発環境
005 PHPマニュアルを使いたい
006 開発環境を作りたい
007 XAMPPをインストールしたい
008 MAMPをインストールしたい
009 WindowsにEclipse PDTをインストールしたい
010 Mac OS XにEclipse PDTをインストールしたい
第2章 PHPの基本構文
2.1 変数
011 変数と文字列を出力したい
012 echo<<<END、$変数=<<<ENDって何ですか?
013 変数化セットされているかどうか調べたい
014 変数の型を調べたい
015 (int)、(string)って何ですか?
016 NULLって何ですか?
017 =&って何ですか?
018 環境変数の情報を取得するには?
2.2 定数
019 定数を使用するには?
020 定義済みの定数を知りたい
2.3 条件分岐
021 条件で処理を分岐するには?
022 switch文の使い方を知りたい
023 「条件式?式1:式2」って何ですか?
024 2つの値を比較するには?
025 ==と===、!=と!==の違いは?
2.4 繰り返し処理
026 PHPの繰り返し構文を知りたい
027 繰り返し処理の途中でループを抜けたい
028 繰り返し処理の途中でスキップしたい
2.5 関数
029 関数を定義したい
030 デフォルト引数値を指定したい
031 関数の引数に付いた&って何ですか?
032 引数の数が変わる関数を定義したい
033 変数のスコープを知りたい
034 静的変数とは?
035 関数が定義済みかどうか調べたい
036 関数から複数の値を受け取りたい
2.6 ファイルのインクルード
037 他のファイルを取り込んで利用したい
038 エラーメッセージを制御したい
039 エラーレベルを設定したい
040 エラーメッセージを送信したい
041 ユーザーエラーを発生させたい
第3章 PHPの基本テクニック
3.1 文字列
042 文字列の一部を取り出したい
043 特定の文字列が含まれているか調べたい
044 文字列を置き換えたい
045 正規表現によるパターンマッチをしたい
046 正規表現による複雑な文字列の置き換えをしたい
047 文字列を繰り返し表示したい
048 アルファベットを小文字から大文字に変換したい
049 アルファベットを大文字から小文字に変換したい
050 全角英数字を半角に変換したい
051 半角英数字を全角に変換したい
052 カナ文字を全角かなや半角カナに変換したい
053 文字列の長さを調べたい
054 文字列の前後の空白を削除したい
055 文字エンコードを変換したい
056 ハッシュ値を求めたい
057 ランダムな文字列を生成したい
3.2 数値
058 数値の丸め(四捨五入)、切り上げ、切り捨てをしたい
059 数値を3桁ごとにカンマ区切りしたい
060 数値を必ず小数点以下まで表示させたい
061 乱数を生成したい
3.3 日付時刻
062 日付や時刻の一部を取り出して使いたい
063 日付の表示形式を変えたり、日付の加減算をしたい
064 現在のタイムスタンプを取得したい
065 日付をタイムスタンプに変換したい
066 文字列表現の日付をタイムスタンプに変換したい
067 日付が正しいかどうかチェックしたい
068 指定した日付の曜日を求めたい
069 月末日を求めたい
070 締め日を求めたい
071 「第3月曜日」を求めたい
072 指定した日付の年度を求めたい
073 西暦を和暦にしたい
074 生年月日から現在の年齢を求めたい
075 カレンダーを表示したい
076 日付セレクトメニューを表示したい
3.4 配列
077 配列を使いたい
078 配列の内容をデバックしたい
079 配列を結合したい
080 配列を並べ替えたい
081 配列を逆順にしたい
082 連想配列を値で並べ替えたい
083 連想配列を添え字で並べ替えたい
084 配列の先頭に値を追加したい
085 配列の末尾に値を追加したい
086 配列の指定箇所に値を追加したい
087 配列の先頭を取り除きたい
088 配列の末尾を取り除きたい
089 配列の指定範囲を取り除きたい
090 配列の指定範囲を置き換えたい
091 配列の一部を取り出したい
092 配列に値が存在するか調べたい
093 配列の値を一度に複数の変数へセットしたい
094 配列のすべての要素を一括処理したい
095 配列を連結して1つの文字列にしたい
096 カンマやスペース区切りの文字列を分割して配列にしたい
3.5 PHPの設定
097 PHPの設定を調べたい
098 PHPの設定を一時的に変更したい
3.6 ベンチマーク
099 ベンチマークを取得したい
100 関数の平均実行時間を測定したい
第4章 ファイルとディレクトリ
4.1 ファイル
101 ファイルを扱う処理の流れは?
102 日別のログファイルを作成したい
103 一時ファイルにデータを取得したい
104 fopen()関数を使わずにファイルにデータを書き込みたい
105 ファイルのデータを取得したい
106 ファイルから指定バイト数ずつ取得したい
107 ファイルのデータをまとめて取得したい
108 ファイルの最終更新時刻を取得したい
109 ファイルの最終更新時刻を取得したい
110 ファイルの拡張子を取得したい
111 ファイルの拡張子を取得したい
112 パス名からファイル名を取得したい
113 ファイルが存在するか調べたい
114 ファイルが読み取り可能か調べたい
115 ファイルが書き込み可能か調べたい
116 ファイルをコピーしたい
117 ファイルを削除したい
4.2 ディレクトリ
118 ディレクトリを作成したい
119 パス名からディレクトリ名を取得したい
120 絶対パス名を取得したい
121 ディレクトリが使用可能な容量を取得したい
122 ディレクトリを削除したい
123 ディレクトリ内のディレクトリやファイル名を取得したい
124 ディレクトリ内の画像を一覧表示したい
4.3 PDFファイル
125 PDFファイルを生成したい
126 PDFにリンク文字列を書き込みたい
127 PDFに表を書き込みたい
128 PDFに直線を挿入したい
130 テキストファイルをPDFに変換したい
131 既存のPDFファイルを元にPDFファイルを生成したい
4.4 CSVファイル
132 CSVファイルを読み込みたい
133 CSVファイルを出力したい
4.5 画像ファイル
134 画像を作成したい
135 画像をファイルとして保存したい
136 既存ファイルから画像を生成したい
137 画像のサムネイルを作成したい
138 画像にテキストを追加したい
139 画像に点を書き込みたい
140 画像のサイズを取得したい
141 グラフを生成したい
142 折れ線グラフを生成したい
143 棒グラフを生成したい
144 パイグラフを生成したい
145 QRコードを生成したい
第5章 PEARとSmarty
5.1 PEARの使い方
146 PEARを使いたい
147 PEARをアップグレードしたい
5.2 Smartyの使い方
148 Smartyを使いたい
149 テンプレートを分割したい
150 フィルターを使いたい
151 繰り返し処理したい
152 条件分岐したい
153 スーパーグローバル変数を取得したい
154 メールアドレスの暗号化でSPAM対策したい
第6章 Webプログラミング
6.1 フォームの基礎
155 フォームを使いたい
156 テキストボックスを使いたい
157 テキストエリアを使いたい
158 テキストボックスを使いたい
159 セレクトメニューを使いたい
160 ラジオボタンを使いたい
161 パスワードボックスを使いたい
162 隠しフィールドを使いたい
163 ファイル名入力ボックスを使いたい
164 ボタンを使いたい
6.2 フォームの実際
165 複数選択可能なセレクトメニューやチェックボックスの値を受け取りたい
166 日付入力のためのフォームを生成したい
167 データが代入されたかどうかをチェックしたい
168 データ入力時のみデータを処理するには?
169 特定の文字列を含むかチェックしたい
170 文字数や桁数をチェックしたい
171 数値かどうかをチェックしたい
172 金額にカンマを付けたい
173 日付かどうかチェックしたい
174 ファイルの拡張子をチェックしたい
175 メールアドレスの形式をチェックしたい
176 データベースに登録済みかどうかチェックしたい
177 配列からラジオボタンを生成したい
178 データベースからセレクトメニューを生成したい
179 簡単なログインフォームを作成したい
180 メール送信フォームを作成したい
181 magic_quotes_gpcがOnでもOffでも動作するようにしたい
6.3 入力データの加工
182 安全なデータベース操作をしたい
183 安全にブラウザで値を表示したい
184 タグを取り除きたい
185 URIの一部に日本語を利用したい
186 改行タグを改行文字の前に挿入したい
187 複数の検索キーワードで検索したい
188 複数選択されたデータを検索したい
189 年/月/日のデータをタイムスタンプに変換したい
190 「YYYY/MM/DD」形式の日付を利用したい
6.4 Cookie
191 データをCookieに保存したい
192 Cookieのデータを読み取りたい
6.5 セッション
193 セッションを使いたい
194 セッション名を取得/設定したい
195 セッションIDを取得したい
196 セッション変数を使いたい
197 セッション変数を破棄したい
198 セッションCookieのパラメータを設定したい
199 セッションを破棄したい
6.6 ファイルアップロード
200 アップロードされたファイルか調べたい
201 複数の画像ファイルをアップロードしたい
202 ファイルをダウンロードしたい
6.7 メール処理
203 添付ファイルつきのメールを送りたい
204 メールをPOPサーバーから取得したい
6.8 ネットワーク
205 IPアドレスからホスト名を取得したい
206 ホスト名からIPアドレスを取得したい
6.9 HTTPヘッダー
207 HTTPヘッダーを送信したい
208 別のページに飛ばしたい
209 キャッシュを無効にしたい
6.10 データベース(MySQL)
210 データベースに接続したい
211 複数行の結果を取得したい
212 1行の結果を取得したい
213 レコードをオブジェクトとして取得したい
214 新規レコードを作成したい
215 イメージデータを格納したい
216 レコードを更新したい
217 レコードを削除したい
218 クエリ結果のメモリを開放したい
219 テーブルを作成したい
220 エラー情報を取得したい
6.11 その他
221 ユニークなIDを作成したい
222 URIの構成要素を解析したい
223 処理を一時停止したい
第7章 クラスとオブジェクト
7.1 クラスの基礎
224 クラスとは?
225 クラスを使いたい
226 「$this」や「->」とは何ですか?
227 クラスの継承とは?
228 コンストラクタとは?
第8章 セキュリティ
8.1 セキュリティ対策の基本
229 セキュリティ対策の基本を知りたい
230 入力値の検証方法を知りたい
231 文字列を比較する場合の注意点を知りたい
8.2 PHPの設定
232 本番環境でのエラー出力の設定方法は?
233 セーフモードとは?
234 より安全なphp.ini設定を知りたい
8.3 セキュリティ対策
235 パラメータ改竄とは?
236 XSSとは?
237 XSS対策をしたい
238 CSRFとは?
239 NULLバイト攻撃とは?
240 SQLインジェクションとは?
241 CSコマンドインジェクションとは?
242 ディレクトリトラバーサルとは?
243 インクルード攻撃とは
244 eval利用攻撃とは?
245 メールヘッダーインジェクションとは?
246 Cookieを安全に利用したい
247 セッションハイジャック対策をしたい
248 セッション固定化攻撃を防ぎたい
249 SSL利用時にセッションを安全に利用したい
250 Ajaxのセキュリティについて知りたい
第9章 トラブルシューティング
9.1 エラー表示など
251 ページが真っ白で何も表示されない
252 大量のNoticeエラーが表示される
253 「Warning:Cannot modify header information・・・」エラーが表示される
254 特定の処理においてエラーを無視したい
9.2 文字化け
255 日本語のWebページが文字化けする
256 フォームから送信だれた値が文字化けしたり表示されない
257 フォームから送信された「申込」が「申¥込」になる
258 日時だけが文字化けする
第10章 アプリケーション編
10.1 phpMyAdmin
259 phpMyAdminを使いたい
10.2 WordPress
260 WordPressを使いたい
10.3 MyNETS
261 MyNETSを使いたい
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | 105 下から2行目 |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 132 表3.5 |
4刷 | 未 |
|
2010.05.19 | ||||||
1刷 | 157 1つ目のリスト |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 157 2つ目のリスト |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 163 本文4行目 |
2刷 | 未 |
|
2009.10.01 | ||||||
1刷 | 174 中段、「月初日の曜日を元にして第1○曜日の日付を求めます。」の2行目 |
6刷 | 未 |
|
2011.04.22 | ||||||
1刷 | 257、259 リスト |
4刷 | 未 |
|
2010.05.19 | ||||||
1刷 | 333 グラフ内のx(下部) |
2刷 | 未 |
|
2010.01.05 | ||||||
1刷 | 401 本文3~4行目 |
2刷 | 未 |
|
2009.10.01 | ||||||
1刷 | 466 本文、下から1行目 |
4刷 | 未 |
|
2010.03.02 | ||||||
1刷 | 473、476 「NOTE」の上 |
2刷 | 未 |
|
2009.10.01 | ||||||
1刷 | 474 リスト最終行の網掛け部 |
2刷 | 未 |
|
2009.10.01 | ||||||
1刷 | 480 ページ下部 |
2刷 | 未 |
|
2009.10.01 | ||||||
1刷 | 506 リスト6行目 |
未 | 未 |
|
2013.05.13 | ||||||
1刷 | 509 リスト中ほど |
未 | 未 |
|
2013.05.13 | ||||||
1刷 | 511 リスト中ほど |
2刷 | 未 |
|
2009.10.01 | ||||||
1刷 | 538 「NOTE」リスト3行目 |
未 | 未 |
|
2013.05.13 | ||||||
1刷 | 549 リストの1つ目の網掛け(作成するテーブル~)部分 |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 549 リストの2つ目の網掛け(テーブルを追加する~)部分 |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 549 リストの2つ目の網掛け(// ロリポップの場合)部分 |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 550 2つ目のリスト |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 559 ソースコード中ほど |
4刷 | 未 |
|
2010.05.19 | ||||||
1刷 | 590 「●disable_functions」2~3行目 |
未 | 未 |
|
2013.05.13 | ||||||
1刷 | 616 「クエリを準備します」の上の部分 |
2刷 | 未 |
|
2009.10.06 | ||||||
1刷 | 628 「●secure属性」7行目 |
未 | 未 |
|
2013.05.13 | ||||||
1刷 | 650 下から2行目 |
2刷 | 未 |
|
2009.07.27 | ||||||
1刷 | 731 INDEX「C」 |
2刷 | 未 |
|
2009.10.06 | ||||||
1刷 | 737 INDEX「S」 |
2刷 | 未 |
|
2009.10.06 | ||||||
1刷 | vii 「レンタルサーバー動作確認マークについて」1行目 |
2刷 | 未 |
|
2009.07.27 | ||||||
4刷 | 515 リスト内 |
5刷 | 未 |
|
2010.12.03 | ||||||
4刷 | 515 リスト内 |
5刷 | 未 |
|
2010.12.03 | ||||||
4刷 | 516 リスト内 |
5刷 | 未 |
|
2010.12.03 | ||||||
4刷 | 601 一番下の網囲み |
5刷 | 未 |
|
2010.12.03 | ||||||
4刷 | 602 上から2行目 |
5刷 | 未 |
|
2010.12.03 | ||||||
6刷 | 117 表3.1、\Wの説明 |
未 | 未 |
|
2011.09.21 | ||||||
6刷 | 503 9~14行目 |
未 | 未 |
|
2011.09.21 | ||||||
6刷 | 503 下から21~23行目 |
未 | 未 |
|
2011.09.21 |
北大路京介 さん
2016-09-30
図書館で借りた。わかりやすい。新しい版が出てるので、必要になったら新版を手にします。
Yusuke Horimoto さん
phpを学ぶ上で初めに読んだのがこの本でした。 基本となる関数、配列等の概念を、ショートコードとして見ていく形式した。 わかりやすくはあったのですが、おそらく一冊目としては微妙な選択であったようにも思いますね。機能が色々乗っているため、逆引きとしては優秀な本だと思います。
がら さん
2012-10-14
PHPのバイブル本としていつも常備しています。PHPで迷ったらすぐにヒントをくれる私の神本です。