サンプル無料試行サービス トライサンプル

>>トライサンプルTOP

教本の詳細はWINGS
サーバサイド技術の学び舎 WINGS

その他対応教本

今日から使えるJPS&サーブレットサンプル集 JSP2.0&サーブレット2.4対応
今日から使えるPHP5サンプル集
Smarty入門 PHP+テンプレート・エンジンでつくるMVCアプリケーション
PEAR入門
10日でおぼえるJakarta入門教室
10日でおぼえるJSP/サーブレット入門教室 第2版
10日でおぼえるPHP5入門教室
改訂新版 基礎PHP
プログラミングワンダーランドへいらっしゃい JSP&サーブレット編(メンテナンス中)
独習PHP

独習PHP

入門から、PEAR、SmartyまでPHPをこの1冊で!

いよいよあの独習シリーズにPHPが登場です。
PHP最新版5.1に対応し、サーバーサイドプログラミングの基礎からオブジェクト指向、またデータベース連携やPEAR、Smartyなどの定番ライブラリまでを詳しく解説。
読んで、試せる練習問題を多数収録しているので、1人で学習するのも安心です。

--------------------------------------------------

まとめて読んで 更にスキルアップのこんな書籍

  • PHP標準ライブラリPEARを使ってラクラクWeb開発を
    「PEAR入門 PHP標準ライブラリを極める!」(翔泳社)
  • 基礎からじっくり確実にステップアップ
    「10日でおぼえるPHP5入門教室」(翔泳社)
  • ロジックとウェブデザインの架け橋Smartyを極めよう
    「Smarty入門 PHP+テンプレート・エンジンでつくるMVCアプリケーション」(翔泳社)
  • 実用サンプルでより具体的な用途を
    「今日からつかえるPHP5サンプル集」(秀和システム)
  • 較べて解る 深まる理解
    「JSP/PHP/ASP サーバサイドプログラミング徹底比較」(技術評論社)

--------------------------------------------------

Contents

第1章 イントロダクション

静的なページと動的なページ
PHP利用のための基本環境設定
Windows/Linux共通の環境設定の手順
この章の理解度チェック

第2章 基本構文

PHPの基本構文
変数
スーパーグローバル変数
定数
演算子
条件分岐
繰り返し処理
関数
この章の理解度チェック

第3章 オブジェクト指向構文

クラス
クラスの定義
継承
ポリモーフィズム
例外処理
PHP 5独自のオブジェクト指向構文
この章の理解度チェック

第4章 関数

マルチバイト文字列関数
マルチバイト正規表現関数
日付・時刻関数
ディレクトリ関数&ファイルシステム関数
XML関数
この章の理解度チェック

第5章 データベース連携

データベースの種類
データベース抽象化レイヤ
データベース接続の準備
データベースへの接続
SQLインジェクションとプレイスホルダ
結果セットの取得
トランザクション処理
メタデータ
この章の理解度チェック

第6章 PHPで利用可能なライブラリ

PHP拡張ライブラリの種類
PEARライブラリのインストール方法
PEAR::DB_DataObject
PEAR::Auth
PEAR::HTML_QuickForm
PEAR::Cache_Lite
PEAR::Pager
PEAR::Log
FPDF
この章の理解度チェック

第7章 テンプレートエンジンSmarty

HTML埋め込みモデルの欠点
Smartyのインストール方法
Smartyの基本動作
テンプレートの構造
修飾子
繰り返し処理:{foreach}関数
条件分岐:{if}関数
外部テンプレートを引用する:{include}関数
Smartyの高度な利用方法
この章の理解度チェック

 

トライ・サンプル

独習PHP

基本構文

PHPの基本構文
プログラムファイル page
まずはPHPでごく基本的な"Hello,World"サンプルを作成してみましょう
サンプル
32
変数
プログラムファイル page
変数について
サンプル
37
>>変数のデータ型
変数のデータ型について
サンプル
40
>>データ型キャスト
少数のデータが含まれていた変数の内容をキャストによって整数に変換される例です。
サンプル
41
>>配列
通常配列の例
サンプル
43
連想配列の例
サンプル
43
array命令を入れ子(ネスト)構造で記述して、多次元の配列を表現する例
サンプル
44
ブラケット構文を利用して配列の個々の要素を値にセットする例
サンプル
44
pring_r命令で配列を出力する例
サンプル
45
可変変数について
サンプル
46
スーパーグローバル変数
プログラムファイル page
>>$_POST
フォームに入力した値をpost2.phpで表示します。
サンプル
47
>>$_GET
URLに付いたクエリの値を表示します。
サンプル
49
>>$_FILES
ファイルアップロードの例です。ここではいたずら防止の為動作しません。(当サーバサービスでは問題なく動作します)
サンプル
52
>>$_SERVER
ヘッダ情報のUser-Agentを取得表示する例
サンプル
56
>>$_ENV
サーバ側で設定された環境変数を取得表示する。(当環境では何も表示されません)
サンプル
58
>>$_COOKIE
Emailアドレスを入力して、送信を押してください。その後、ページを閉じて再度このページを開くと、先に入力したEmailアドレスが自動で入力されます。cookieを利用した例です
サンプル
59
>>$_SESSION
初めのページで登録したセッション情報を次のページ(次の項のページ)で表示します。
サンプル
63
前のページ(前項のページ)で登録したセッション情報を取得して表示します。
サンプル
63
定数
プログラムファイル page
ここでは定数TAXを1.05という値で設定する例です
サンプル
65
演算子
プログラムファイル page
>>代数演算子
サンプル
68
>>その他演算子
「@」演算子について。スクリプト内でエラーが発生していますが、警告メッセージが抑制されて何も表示されません。
サンプル
72
条件分岐
プログラムファイル page
>>if命令
if{ }else{ } の構文
サンプル
74
elseifブロックを用いて複数の分岐を表現する方法
サンプル
74
条件分岐のネスト(入れ子構造)
サンプル
75
>>switch命令
サンプル
76
>>練習問題
選択された値に応じて「正解」「不正解」と表示するスクリプト
サンプル
78
繰り返し処理
プログラムファイル page
>>for命令
サンプル
79
>>while命令
サンプル
80
>>do...while命令
サンプル
80
>>foreach命令
配列配下の各要素に対して繰り返し処理を行う例
サンプル
81
前項のプログラムでキー表示が不要な場合の例
サンプル
82
>>continue命令
サンプル
82
>>break命令
サンプル
83
>>練習問題
for命令を使用して九九表を作成する例
サンプル
84
関数
プログラムファイル page
>>ユーザ定義関数
サンプル
87
省略可能な引数を設定する場合。
サンプル
88
>>変数の有効範囲
サンプル
89
グローバル変数を強制的にローカル変数として利用する例
サンプル
89
>>外部ファイルのインクルード
include_onceを使う例
サンプル
90
require_onceを使う例
サンプル
90
この章の理解度チェック
プログラムファイル page
>>例題
for命令とcontinue命令を使って1〜100までの偶数のみを合計し、結果を表示させる
サンプル
92
>>例題
スーパーグローバル変数$_SERVERを使って、全てのリクエストヘッダとサーバ環境変数とを出力する
サンプル
93
>>例題
クッキーにアクセス数を保存し、サイトを訪れた回数をユーザーごとに表示するスクリプト
サンプル
94

オブジェクト指向構文

クラスの定義
プログラムファイル page
>>コンストラクタとデストラクタ
サンプル
102
>>静的メソッド
クラス外部から静的メソッドを呼び出すには「::」演算子を使います。
サンプル
108
>>クラス内定数
PHP5からはconstキーワードを利用することで、クラス内部で定数を定義することが出来ます。
サンプル
109
継承
プログラムファイル page
>>サブクラスについて
サンプル
110
>>parentキーワード
結果は前項と同じ。parentキーワードを使う例
サンプル
112
>>final修飾子
特定のメソッドをオーバライドできないように制限するための修飾子finalについて。ここでは間違い例。エラーが表示されます。
サンプル
113
ポリモーフィズム
プログラムファイル page
>>ポリモーフィズムについて
サンプル
115
>>抽象メソッド
サンプル
116
>>インターフェイス
サンプル
120
>>練習問題
サンプル
121
例外処理
プログラムファイル page
>>例外処理
サンプル
123
PHP5独自のオブジェクト指向構文
プログラムファイル page
>>__autoload関数
サンプル
125
>>__callメソッド
サンプル
128
>>__get __setメソッド
サンプル
129
この章の理解度チェック
プログラムファイル page
>>例題
サンプル
130

関数

マルチバイト文字列関数
プログラムファイル page
>>部分文字列を取得する
サンプル
135
>>特定の文字位置を検索する
サンプル
137
>>文字列を変換する
サンプル
138
>>メールを送信する
ここでは、弊社へメールが送信されます。
サンプル
141
マルチバイト正規表現関数
プログラムファイル page
>>正規表現による検索
サンプル
145
>>正規表現による置換
サンプル
146
>>正規表現による分割
サンプル
148
日付・時刻関数
プログラムファイル page
>>現在の日時を「YYYY年MM月DD日(曜日)」の形式で表示します
サンプル
152
>>time mktime strtotime 関数を利用して特定の日時を整形する
time mktime strtotime 関数を使った例
サンプル
152
gmdateを使った例
サンプル
152
>>日付の妥当性を検証する
checkdate関数。 29〜31までの値が日付として妥当ではないとみなされ、出力されない。
サンプル
153
ディレクトリ関数&ファイルシステム関数
プログラムファイル page
>>ディレクトリ情報を一覧表示する
サンプル
154
>>テキストファイルへの書き込み
アクセスログを記録する。記録内容は次項でご覧下さい。
サンプル
157
>>テキストファイルの読み込み
前項で記録されたログをHTMLテーブルとして表示します。
サンプル
161
前項のサンプルをfgetcsv関数を利用して書き換えます。表示結果は同じです。
サンプル
164
>>練習問題
フォームから入力された文字をタブ区切りテキストとして保存するスクリプト
サンプル
165
>>練習問題
前項の練習問題で保存されたテキストをテーブル形式で表示
サンプル
166
XML関数
プログラムファイル page
>>SimpleXmlでXml文書の参照/編集を行う
books.xmlの内容を読み取り、HTMLテーブル形式で一覧表示する
サンプル
170
新たにbooks_new.xmlファイルを生成して<price>要素の値を変更します。ブラウザには何も表示されません
サンプル
173
前項で生成されたxmlファイルです。<price>の値が10500へ変えられています。
サンプル
173
>>練習問題1
SimpleXML関数を利用して、P.170のbooks.xmlから3番目の書籍ISBNを取得します。
サンプル
173
>>練習問題2
P.170のbooks.xmlから書籍情報を取り出して、リストを作成します。
サンプル
173
>>XMLReader関数でシーケンシャルな読み込み処理を行う
サンプル
175
>>XSL関数でXSLTによるスタイル付けを行う
サンプル
182
>>Soap関数でXML Webサービスを利用する
Amazon.com Web Servicesを使う
サンプル
184
この章の理解度チェック
プログラムファイル page
>>例題
このフォームから入力内容を受けて、予め決められた特定の宛先(ここでは弊社メールアドレス宛て)にメール送信するコード
サンプル
187
>>例題
特定ディレクトリ配下のファイル一覧を表示
サンプル
188
>>例題
複数のURL文字列を含むテキストを読み込みURL文字列一覧を表示させる
サンプル
189

データベース連携

データベースへの接続
プログラムファイル page
PDOでデータベース接続をします。ここではデータベースはSQLite
サンプル
205
>>データベースにSQLクエリを発行する
データベースにテーブルを作成します。(すでに作成されているのでここではエラーが表示されます)
サンプル
209
>>入力値を基にデータベースに登録する
前項で作成したaddressテーブルにデータを登録します。
サンプル
210
>>練習問題
PDO関数を使ったデータベース接続の練習問題
サンプル
214
SQLインジェクションとプレイスホルダ
プログラムファイル page
>>プレイスホルダの基本
前節のaddressテーブルにデータを登録するプログラムをプレイスホルダを利用したコードに置き換えます。
サンプル
216
結果セットの取得
プログラムファイル page
サンプル 222
>>さまざまなフェッチの利用方法
fatchAllメソッド
サンプル
225
>>fetchColumnメソッド
サンプル
226
>>フェッチモードPDO::FETCH_BOUNDを使用する
サンプル
227
>>練習問題
PDO::FETCH_NUMを使って表示する
サンプル
228
>>練習問題
PDO::FETCH_OBJを使って表示する
サンプル
228
トランザクション処理
プログラムファイル page
>>トランザクションの活用
エラー発生時に、命令がロールバックされ、データ更新されません。ブラウザ上ではエラーが表示されます。
サンプル
231
PDO::beginTransaction, commit, rollBack メソッドを使う。同じくブラウザ上ではエラーが表示されます。
サンプル
232
>>練習問題
フォームに入力された内容で更新処理します。更新に際して、いずれかの処理が失敗した場合、全ての更新をロールバックします。
サンプル
233
メタデータ
プログラムファイル page
>>テーブル情報の取得
getColumnMetaメソッドを使用して、addressテーブルに含まれるフィールド情報を一覧表示します
サンプル
236
この章の理解度チェック
プログラムファイル page
>>例題
bookテーブルの内容を検索するためのスクリプトです。
サンプル
237
>>例題
bookテーブルへの登録を行うためのスクリプトです。
サンプル
238

PHPで利用可能なライブラリ

PEAR::DB_DataObject
プログラムファイル page
>>DB_DataObjectによるデータベース連携
サンプル
254
>>getメソッド
サンプル
256
>>DB_DataObjectによるデータの編集
サンプル
256
>>updateメソッド
サンプル
258
>>DB_DataObjectライブラリを利用した検索/登録処理
入力された検索条件で検索を行い、一覧画面を表示する
サンプル
258
入力された値を基にテーブルへの登録を行う
サンプル
260
>>練習問題
addressテーブルの情報を更新、削除するためのフォームを作成します。
サンプル
261
PEAR::Auth
プログラムファイル page
ログインシステムです。他サンプル動作時にすでにログインを済ませている場合は、一度、ブラウザを閉じてからアクセスしてみてください。
サンプル
271
PEAR::HTML_QuickForm
プログラムファイル page
>>HTML_QuickFormによるフォーム生成
当環境ではHTML_QuickFormによる2バイト文字の文字数チェックが上手く動作しません。(バイト数カウントになってしまいます。)(javascriptは正しく動作します)
サンプル
274
>>HTML_QuickFormを利用したデータ処理
サンプル
281
>>ファイルのアップロード処理をPEAR::HTML_QuickFormで実装する
ここではいたずら防止の為動作しません。(当サーバサービスでは問題なく動作します)
サンプル
284
>>練習問題
PEAR::HTML_QuickFormライブラリを使って、addressテーブルに新規データを登録する
サンプル
285
PEAR:::Cache_Lite
プログラムファイル page
>>Cache_Liteを利用した基本的なデータキャッシュの例
サンプル
288
>>パラメータ依存のキャッシュを生成する
クエリ情報"category"の値に応じて内容が変動するスクリプトです。ここでは、情報をキャッシュする事により、同じ値が表示されてしまう、良くない例です。次項ではパラメーターに応じたキャッシュ生成ができるよう書き換えられています。category=のあとの値を変えてみてください。(同じものが表示されます)
サンプル
291
前項のスクリプトを正しく動作するように書き換えたものです。
サンプル
293
>>練習問題
データベースから取得したbookテーブルの内容を配列としてキャッシュしましょう。
サンプル
295
PEAR;:Pager
プログラムファイル page
>>PEAR::Pagerの基礎知識
PEAR::Pagerライブラリを使ったごく単純なページングの例
サンプル
297
>>データベース連携のページング処理
サンプル
300
>>練習問題
addressテーブルの内容を一覧表示します。3件単位でページング
サンプル
302
PEAR;:Log
プログラムファイル page
>>PEAR::Logの基礎知識
Logをとります。ブラウザには何も表示されません。ログの内容は次項をご覧下さい。
サンプル
304
前項で書き出したログです。
サンプル
305
>>エラー情報をロギングする
エラー情報をテキストファイルにログ出力します。ログの内容は前項のログをご覧下さい。
サンプル
308
>>練習問題
PEAR::Logを使って、データベースへのアクセス失敗を補足し、エラー情報を記録して見ましょう。ログの内容は前々項のログをご覧下さい。
サンプル
FPDF
プログラムファイル page
FPDFを利用して簡単なPDF文書を作成してみましょう。
サンプル
312
>>さまざまなPDF文書の作成
サンプル
314
>>テーブルの内容を表形式のPDF帳票として出力する
サンプル
316
>>練習問題
addressテーブルから出力した内容を表に整形し、PDF帳票として出力しましょう。
サンプル
317
この章の理解度チェック
プログラムファイル page
>>例題
PEAR::DB_Objectを利用して、P.261のp_update1.php, p_update2.phpを置き換えてみます。
サンプル
319
>>例題
PEAR::HTML_QuickFormとPEAR::DB_DataObjectを利用して、musicianテーブルを登録するためのフォームを作成してみましょう。
サンプル
321

テンプレートエンジンSmarty

Smartyの基本動作
プログラムファイル page
サンプル 332
テンプレートの構造
プログラムファイル page
>>練習問題
ユーザから入力された名前に対して、2種類の方法で「こんにちは、●○さん!」と表示します。
サンプル
340
修飾子
プログラムファイル page
>>日付/数値データのフォーマッティング
date_format修飾子
サンプル
346
number_format関数
サンプル
346
繰り返し処理:{foreach}関数
プログラムファイル page
>>データベース連携のサンプル
テーブルの内容を一覧表示する
サンプル
349
>>テーブルを更新するための一覧表フォームを作成する
サンプル
351
>>練習問題
addressテーブルを更新するための一覧表フォームを作成してみよう
サンプル
条件分岐:{if}関数
プログラムファイル page
>>{if}関数を用いたアクセスログの出力
access_logテーブルからアクセス情報を取得し、棒グラフに出力します。1000未満の場合は赤字で表示
サンプル
356
>>練習問題
bookテーブルの内容を抽出し、リスト形式で整形してみよう。単価が3000円以上の書籍は赤字で表示
サンプル
外部テンプレートを引用する:{include}関数
プログラムファイル page
>>ヘッダ/フッタテンプレートの引用
ヘッダ/フッタテンプレートを別テンプレートとして用意しておき、コンテンツページから引用してみます。
サンプル
361
Smartyの高度な利用方法
プログラムファイル page
>>Smarty派生クラス
Smarty派生クラスMySmartyを利用して、P.349のforeach_book.phpを書き換えたもの
サンプル
366
>>設定ファイルでサイト共通の情報を管理する
設定ファイルを利用することで、アプリケーション共通で管理したい情報を一元化することができる。
サンプル
368
前項を、スクリプトから設定ファイルを読み込む形に書き換えたもの。表示結果は同じ
サンプル
369
>>練習問題
設定ファイルを使って、ページタイトルを外部化してみましょう。
サンプル
370
>>テンプレートキャッシュを利用する
複数回アクセスしても同じ時刻が表示されます。2回目以降はキャッシュが表示されるため。
サンプル
372
>>動的に生成されるページをキャッシュする
クエリ「category」の値を変えてみてください。それぞれの値によってキャッシュが生成されます。
サンプル
374
この章の理解度チェック
プログラムファイル page
>>例題
musicianテーブルを更新するフォームを作成します。
サンプル
377