作りながら学べるPHPプログラミング入門書
PHP5対応、基本知識からPEAR、SQLite(データベース)、Smarty活用まで。シリーズ100万部突破の「10日でおぼえる~」シリーズだから、初心者にも安心。無理なく確実に学べます。
1レッスンごと自分でサンプルを作って、自分の目で動作を確認。
丁寧な解説とわかりやすい挿絵、動作画面が嬉しい構成。、基本知識とテクニックをがっちり固めましょう。
更新履歴
- FAQ情報:2009年6月3日 更新
- 正誤訂正:2007年12月27日 更新
目次
- 第0日:オリエンテーション
- 第1日:PHPの基本的なしくみを学ぼう
- 1時限目:おぼえようPHPの基本
- 2時限目:フォームからの入力を受け取ろう
- 第2日:HTTPプロトコルを理解しよう
- 1時限目:クエリ情報を活用してみよう
- 2時限目:ヘッダ情報を覗いてみよう
- 3時限目:クッキー情報を活用しよう
- 第3日:関数利用で拡がるPHPの世界<基本編>
- 1時限目:配列関数でおみくじ機能を作ろう
- 2時限目:セッション関数で作る数当てゲーム
- 3時限目:日付関数で万年カレンダを作成しよう
- 第4日:関数利用で拡がるPHPの世界<通信編>
- 1時限目:メール関数で訪問者の声を受け取ろう
- 2時限目:ファイルシステム関数でファイルアップロード機能を実装しよう
- 第5日:関数利用で拡がるPHPの世界<ファイル入出力編>
- 1時限目:テキストベースのゲストブックに書き込もう
- 2時限目:ゲストブックの内容を一覧表示する
- 3時限目:正規表現で自由フォーマットのテキストを検索する
- 第6日:XML+Webサービスでより高度なデータ処理
- 1時限目:RssWriterライブラリでサイト情報をラクラク発信
- 2時限目:Soap関数でAmazon Webサービスを導入しよう
- 3時限目:SimpleXml関数活用でXML形式の設定ファイルを活用する
- 第7日:バイナリデータ活用でビジュアル表現も自由自在
- 1時限目:PDFLib/PDIで動的にPDFファイルを構成しよう
- 2時限目:JpGraphでグラフィカルな図表を作成しよう
- 第8日:SQLiteでカンタンデータベース連携
- 1時限目:スケジュールの登録をしてみよう
- 2時限目:スケジュールの検索をしてみよう
- 第9日:PHP標準ライブラリPEARを学ぶ
- 1時限目:PEAR DBでデータベースサーバの違いを意識しない
- 2時限目:PEAR Authでセキュアなアプリケーションを実現
- 3時限目:PEAR SpreadsheetでExcelファイルを動的に作成する
- 第10日:PHP5で学ぶ、より高度なプログラミング技法
- 1時限目:クラスの基本概念を学ぶ
- 2時限目:継承や多態性でオブジェクト指向の理念を理解する
- 3時限目:テンプレートエンジンSmartyの基本
正誤表
| 該当頁 | 該当箇所 | 修正刷 |
|---|---|---|
| 訂正箇所 | 訂正事項 | 更新日 |
| p.27 | php.iniの設定リスト | - |
| 1117 mbstring.http_output=EUC-JP (HTTP出力の文字コード) | 1117 mbstring.http_output=SJIS (HTTP出力の文字コード) | 2007/12/27 |
| p.67 | 操作手順2 | 4刷 |
| Apacheが起動していることを確認した上で、ブラウザから以下のURLを入力してください。P66の図のように表示されれば、成功です。 http://localhost/php10/day02-2/list_header.php ヒント)ただし、環境によって出力の詳細は異なる可能性があります。 |
Apacheが起動していることを確認した上で、ブラウザから以下のURLを入力してください。 http://localhost/php10/day02-2/ 上のURLにアクセス後、「list_header.php」にアクセスし、P66の図のように表示されれば、成功です。 ヒント)ただし、環境によって出力の詳細は異なる可能性があります。 ヒント)list_header.phpに直接アクセスした場合、HTTP_REFERERの値は表示されません。 |
2006/07/11 |
| p.79 | 2 クッキーへの書込みと読み込み | 3刷 |
| 「60秒×60分×24時間×90日」の値を加算することで、クッキーの有効期限を省略した場合には、 | 「60秒×60分×24時間×90日」の値を加算することで、クッキーの有効期限を90日に設定しているわけです。クッキーの有効期限を省略した場合には、 | 2005/10/07 |
| p.83 | (3)ビット演算子の表 ~ | 2刷 |
| ~0101 | 0101(~は不要) | 2005/09/04 |
| p.83 | (3)ビット演算子の表 >> | 2刷 |
| 0100 | 0101 | 2005/09/04 |
| p.87 | 【kuji.php】スクリプト22行目 | 3刷 |
| <dd><?php print($aryKuji[$aryTitle[0]]); ?></dt> | <dd><?php print($aryKuji[$aryTitle[0]]); ?></dd> | 2005/12/02 |
| p.103 | 下から2行目 | 2刷 |
| セッション情報(セッションID)は、関数を利用することで~ | セッション情報(セッションID)は、session_destroy関数を利用することで~ | 2005/08/30 |
| p.106 | 解説文最終行~ mt_srand関数に関する解説 | 4刷 |
| ただし、mt_rand関数を利用するにあたっては~ | ヒントを追加 PHP4.2以降、乱数生成器の初期化処理は自動で行われるためmt_srand関数は不要です。 |
2006/06/26 |
| p.109 | 【calendar.php】スクリプト6行目 | 5刷 |
| $timestamp=mktime(0,0,0,date("n")+$_GET[\\'num\\'],date("d"),date("Y")); | $timestamp=mktime(0,0,0,date("n")+$_GET[\\'num\\'],1,date("Y")); | 2006/10/08 |
| p.124 | 【header関数】構文下の解説文 | 2刷 |
| sendmail.phpで処理したタイミングのitHTTPHeadersの出力です。 | sendmail.phpで処理したタイミングのieHTTPHeadersの出力です。 | 2005/08/30 |
| p.133 | 上から2行目、構文内、構文の下にある表のタイトル (以上、5箇所) | 4刷 |
| $_FILE | $_FILES | 2006/03/16 |
| p.138 | まとめ 1つ目 | 4刷 |
| $_FILE | $_FILES | 2006/03/16 |
| p.153 | 柱注 ヒント | 2刷 |
| print_r(data); | print_r($data); | 2005/08/30 |
| p.167 | rss_output.php | 2刷 |
| $datum[\\'2\\'] | $datum[2] | 2005/09/04 |
| p.176 | 上のリスト12行目 | 2刷 |
| ~fgets($file,1024,"\\t")~ | ~fgets($file,1024)~ | 2005/08/30 |
| p.184 | 図:XML文書はデータの意味を表す 「HTML文書」 | 2刷 |
| <stong> | <strong> | 2005/08/30 |
| p.185 | 下のリスト5行目 | 2刷 |
| ~1-1-1<address> | ~1-1-1</address> | 2005/08/30 |
| p.189 | 中央 囲みの中のURL | 2刷 |
| http://xml-na.amznxslt.com/onca/xml3?t= | http://xml.amazon.co.jp/onca/xml3?t= | 2005/08/30 |
| p.189 | コラム 解説文最終行 | 2刷 |
| つまみ食い的に呼んでみることをお勧めします。 | つまみ食い的に読んでみることをお勧めします。 | 2005/08/30 |
| p.215 | 【リスト2:graph_gen.php】9行目 | 2刷 |
| $objGrh->xaxis->title->Set("Quantity"); | $objGrh->yaxis->title->Set("Quantity"); | 2005/08/30 |
| p.217 | 2つ目のリスト 9行目 | 2刷 |
| $objGrh->xaxis->title->Set("Quantity"); | $objGrh->yaxis->title->Set("Quantity"); | 2005/08/30 |
| p.230 | 解説文6行目 | 2刷 |
| データ操作命令 | データ操作言語 | 2005/08/30 |
| p.273 | 下から3行目 | 2刷 |
| ~get_~メソッドしか持たないメソッドは~ | ~get_~メソッドしか持たないプロパティは~ | 2005/08/30 |
| p.273 | 下から2行目 | 3刷 |
| ~set_~メソッドしか持たないメソッドは~ | ~set_~メソッドしか持たないプロパティは~ | 2005/09/26 |
| p.277 | コラム内 構文のタイトル | 3刷 |
| 【__call、__get、__eset関数】 | 【__call、__get、__set関数】 | 2005/10/07 |
| p.281 | 図:「継承」と「オーバライド」 下の解説文 | 3刷 |
| 継承したクラスのことを「サブクラス」と言います(*)。 | 継承したクラスのことを「サブクラス」と言います。 | 2005/10/07 |
| p.282 | 解説文下から4行目 | 2刷 |
| Fifure(図形)クラスであれば | Figure(図形)クラスであれば | 2005/08/30 |
| p.289 | 手順2 解説文下から3行目 | 2刷 |
| なお、template_cフォルダに対しては、 | なお、templates_cとcacheフォルダに対しては、 | 2005/08/30 |
| p.295 | 図:Smarty派生クラス利用のメリット 右下の図 | 2刷 |
| Smartyオブジェクトの生成 | MySmartyオブジェクトの生成 | 2005/08/30 |
| p.300 | 索引 「記号・数字」の8つ目 | 4刷 |
| $_FILE | $_FILES | 2006/03/16 |
FAQ
(対処法1)
ブラウザが文字コードを自動判定している場合、Shift JISを選択する。
IE7をお使いの場合、文字化け表示された状態のまま、メニューの
「ページ」→「エンコード」→「日本語(シフトJIS)」と選択。
(対処法2)
「php.ini」の設定を見直す。
特にmbstring、extensionまわりについて、確認してください。
以下URLより「PHP」の手順3「PHPの設定ファイル「php.ini」を作成する」を参照ください。
http://www.wings.msn.to/index.php/-/B-08/
ブラウザが文字コードを自動判定している場合、Shift JISを選択する。
IE7をお使いの場合、文字化け表示された状態のまま、メニューの
「ページ」→「エンコード」→「日本語(シフトJIS)」と選択。
(対処法2)
「php.ini」の設定を見直す。
特にmbstring、extensionまわりについて、確認してください。
以下URLより「PHP」の手順3「PHPの設定ファイル「php.ini」を作成する」を参照ください。
http://www.wings.msn.to/index.php/-/B-08/
更新日: 2008.01.21
php.iniのinclude_pathパラメータが正しく設定されているかどうか、今一度、確認してみてください。
更新日: 2006.10.08
バッファの設定が無効になっていると思われます。php.iniの設定を今一度ご確認ください。
更新日: 2006.02.13
SMTPサーバ側にて、認証その他の制限(セキュリティ設定)がかかっている場合があります。
ご利用のプロバイダの管理者に問い合わせてみてください。
ご利用のプロバイダの管理者に問い合わせてみてください。
更新日: 2008.01.21
sendmail.phpの10行目(header関数)を取り除いてエラーメッセージを確認してください。
更新日: 2008.01.21
本書刊行後に、Amazon側の仕様に変更があったため、そのままではサンプルが動作しません。
(刊行後のバージョンアップ、仕様変更につきましてはサポート外とさせていただいております)
代替として、「PEAR Services_Amazon」を使った以下の記事などを参考にしてください。
http://codezine.jp/article/detail/2902
(刊行後のバージョンアップ、仕様変更につきましてはサポート外とさせていただいております)
代替として、「PEAR Services_Amazon」を使った以下の記事などを参考にしてください。
http://codezine.jp/article/detail/2902
更新日: 2008.10.19
サンプルソース中にある検索に必要なパラメータ「tag」「devtag」に、ご自身で取得された値をセットしてご使用ください。
更新日: 2005.08.16
MagpieRssの仕様が出版時のバージョンから変更になっているようです。
Version 0.7
- support for input and output charset encoding(CHANGELOGより)
出版時のバージョンである0.61(CD-ROM収録版)で確認しましたところ、XML文書がUTF-8の場合でも、特にサンプルやMagpieRss 本体を変更することなく、正しく出力されます。
新しいバージョンをお使いの場合は、rss.php側で以下のように定数設定をすることで、文字化けを解消できます。
Define('MAGPIE_INPUT_ENCODING','UTF-8');
define('MAGPIE_OUTPUT_ENCODING','EUC-JP');
Version 0.7
- support for input and output charset encoding(CHANGELOGより)
出版時のバージョンである0.61(CD-ROM収録版)で確認しましたところ、XML文書がUTF-8の場合でも、特にサンプルやMagpieRss 本体を変更することなく、正しく出力されます。
新しいバージョンをお使いの場合は、rss.php側で以下のように定数設定をすることで、文字化けを解消できます。
Define('MAGPIE_INPUT_ENCODING','UTF-8');
define('MAGPIE_OUTPUT_ENCODING','EUC-JP');
更新日: 2006.09.21
Windows版 PHP5.1からはSQLiteを外部エクステンションとしてphp.ini上で組み込む必要があります。
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
を追加してください。
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
を追加してください。
更新日: 2005.12.16
インストールしようとしているパッケージに対して、現在使用中のPEARのバージョンが古いようです。
以下のコマンドで、PEARをアップグレードしてください。
$ pear upgrade PEAR
詳しくは、以下のサイトを参照してください。
http://peardoc.m-takagi.org/faq.html
以下のコマンドで、PEARをアップグレードしてください。
$ pear upgrade PEAR
詳しくは、以下のサイトを参照してください。
http://peardoc.m-takagi.org/faq.html
更新日: 2009.06.03
以下のようなコマンドを使ってDBパッケージを個別にインストールしてみてください。
c:\php\pear install DB
c:\php\pear install DB
更新日: 2007.01.12
お問い合わせ
書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。
お問い合わせの前にFAQ・正誤表をご確認ください。すでに掲載済みの内容については個別回答が難しい場合があります。