目次:

はじめに

この文書は、Windows XP Professional (SP2) にApache2を搭載したWebサーバにPHPの最新版PHP5をインストールする方法の説明とPHPのいろいろな応用を例示するものです。なお、ここに掲載したPHPのインストール法や応用例のスクリプトは掲載した参考文献や参考サイトから引用したが、そのままではうまく動かない場合も多く、本システムのWebブラウザ環境(IE6)下で正常に動くように適宜修正を加えてあります。もちろん、WebブラウザがNetscape7.2やOpera7.54u2やMozilla FireFoxであってもほぼ正常に動作します。


How to Install PHP5, MySQL4, phpMyAdmin and SQLiteManager on Windows XP Apache2 Web Server



PHP Tests on Windows XP Apache2 Web Server



HTMLのimgタグを使った描画

まず、MySQLデータベースchap5dbを、下図のように、MySQLコマンドを使って作成しておきます。





JpGraphを使った描画

http://www.aditus.nu/jpgraph/jpdownload.phpからJpGraphの安定版jpgraph-1.17.tar.tarをダウンロードし、アーカイバ(たとえば+Lhacaなど)で解凍したフォルダjpgraph-1.17の中のフォルダjpgraph-1.17の名前をjpgraphに変えて、そのフォルダjpgraphをその内容ごとすべてC:\Apache2\htdocs\php\includes\ディレクトリ下へ移動します。



PHPlotを使った描画

http://prdownloads.sourceforge.net/phplot/phplot-5.0rc2.tar.gz?downloadからPHPlotの最新版phplot-5.0rc2.tar.gzをダウンロードし、アーカイバ(たとえば+Lhacaなど)で解凍したフォルダphplot-5.0rc2.tarの中のフォルダphplotの名前のフォルダphplotをその内容ごとすべてC:\Apache2\htdocs\php\ディレクトリ下へ移動します。


(参考サイト)


rkt_radar.phpを使ったレーダーチャートの描画

http://www.rakuto.net/study/php/sample/sradar/からレーダーチャートradar.zipをダウンロードし、アーカイバ(たとえば+Lhacaなど)で解凍したフォルダradarをその内容ごとすべてC:\Apache2\htdocs\php\ディレクトリ下へ移動します。


(参考サイト)


MySQL/SQliteデータベースにExcelファイルをインポートする方法



MySQL/SQliteデータベースのデータをCSV形式のファイルにエキスポートする方法



mysqlコマンドによるテーブルの結合(JOIN)







(参考)上述のテーブルの結合(JOIN)のSQL文の実行は、PHPからも実行できますmyaccess.php

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>MySQLへのアクセスの例</TITLE>
</HEAD>
<BODY>
<?php
    // MySQLに接続する
    $con = mysql_connect("localhost", "root", "redbird");
    if (!$con)
    {
        print("MySQLへの接続に失敗しました");
        exit;
    }
    // sampleデータベースに接続する
    if (!mysql_select_db("torihiki_db"))
    {
        print("データベースへの接続に失敗しました");
        exit;
    }
    // selectコマンドを実行する
    $sql = "select s.number, s.date, s.customer, s.price, s.count, g.goodsname from sales s, goods g where s.goodsid = g.goodsid and s.customer ='山田産業(株)' order by s.number";
    $result = mysql_query($sql);
    if (!$sql)
    {
        print("SQLの実行に失敗しました");
        exit;
    }
    // レコードの件数を表示する
    $numrows = mysql_numrows($result);
    print($numrows . "件のレコードがありました<BR>\n");
    // レコードの内容を順に表示する
    print("<TABLE border=\"1\"><TBODY>\n");
    while ($data = mysql_fetch_array($result))
    {
        print("<TR>");
        print("<TD>" . $data["number"] . "</TD>");
        print("<TD>" . $data["date"] . "</TD>");
        print("<TD>" . $data["customer"] . "</TD>");
        print("<TD>" . $data["price"] . "</TD>");
        print("<TD>" . $data["count"] . "</TD>");
        print("<TD>" . $data["goodsname"] . "</TD>");
        print("</TR>\n");
    }
    print("</TBODY></TABLE>\n");
    // 接続を切る
    mysql_close($con);
?>
</BODY>
</HTML>

(参考文献)


PEAR DBによるMySQL/SQliteデータベースへのアクセス

MySQLデータベースファイルはC:\mysql\dataディレクトリ下にあり、SQLiteデータベースはC:\Apache2\htdocs\phpディレクトリ下にあるものとします。



PEARのページ機能(Pager)を使わずにMySQLデータベースをリスト表示する方法

まず、MySQLデータベースprefdbを、下図のように、MySQLコマンドを使って作成しておきます。



(参考1)preftbl.sqlのテキスト文:
use prefdb;
drop table preftbl;
create table preftbl (
  prefno smallint unsigned primary key,
  prefname varchar(20) not null
);
grant select,insert,update,delete on prefdb.preftbl
 to [email protected] 
 identified by 'firebird';
load data infile 'c:\\mysql\\pref.txt' into table preftbl;
(参考2)pref.txtのテキスト文:
1	北海道
2	青森県
3	岩手県
4	宮城県
5	秋田県
6	山形県
7	福島県
8	茨城県
9	栃木県
10	群馬県
11	埼玉県
12	千葉県
13	東京都
14	神奈川県
15	新潟県
16	富山県
17	石川県
18	福井県
19	山梨県
20	長野県
21	岐阜県
22	静岡県
23	愛知県
24	三重県
25	滋賀県
26	京都府
27	大阪府
28	兵庫県
29	奈良県
30	和歌山県
31	鳥取県
32	島根県
33	岡山県
34	広島県
35	山口県
36	徳島県
37	香川県
38	愛媛県
39	高知県
40	福岡県
41	佐賀県
42	長崎県
43	熊本県
44	大分県
45	宮崎県
46	鹿児島県
47	沖縄県


ページ間の変数データ受け渡し



ユーザ定義関数

ユーザ定義関数内の変数は、一般的には、「ローカル変数」であり、「グローバル変数」ではないことに注意して下さい。


ユーザー名とパスワードによるアクセス認証



外部プログラムの実行



PHPによるExcelファイルの表の読み込み



PEARを使ったPHPからのExcelファイルの作成

http://pear.php.net/package/Spreadsheet_Excel_Writer/download/0.8からSpreadsheet_Excel_Writerの最新版Spreadsheet_Excel_Writer-0[1].8.tgzをダウンロードし、アーカイバ(たとえば+Lhacaなど)で解凍したフォルダSpreadsheet_Excel_Writer-0[1].8の名前をSpreadsheetに変え、またそのフォルダSpreadsheetの中のフォルダSpreadsheet_Excel_Writer-0.8の名前をExcelに変えて、フォルダSpreadsheetをその内容ごとすべてC:\Apache2\htdocs\php\PEAR\ディレクトリ下へ移動します。また、このSpreadsheet_Excel_Writerを動かす時に必要となるOLE Ver.0.5は、Spreadsheet_Excel_Writer-0.8のダウンロードサイトに関連したサイトhttp://pear.php.net/package/OLE/downloadからダウンロードできます。すなわち、http://pear.php.net/package/OLE/downloadからOLE-0[1].5.tgzをダウンロードし、アーカイバ(たとえば+Lhacaなど)で解凍したフォルダOLE-0[1].5の中のフォルダOLE-0.5の名前をOLEに変えて、フォルダOLEをその内容ごとすべてC:\Apache2\htdocs\php\PEAR\ディレクトリ下へ移動します。これでPHPを搭載しているサーバ側にExcelがなくてもクライアント側にExcelがあれば、サーバ側のPHPのPEARを使ってExcelファイルをクライアント側に作成することができます。



PHPによるカウンタ



Smartyの利用



データをPDF形式で出力



別ページへ自動ジャンプ



SQLiteデータベースを使った掲示板(bbs)

まず、下図のように、あらかじめコマンドプロンプトからsqlite bbs_sqlite.dbコマンドを実行してbbs_sqlite.dbという名前のデータベースを作成します。次に、sqlite>プロンプトで

sqlite> CREATE TABLE bbs (id INTEGER PRIMARY KEY, t TEXT, msg TEXT);

コマンドを実行してid, t, msgという名前の3つのフィールドをもつテーブルbbsを作成します。