Commit 54da25f0 authored by 君塚 悠's avatar 君塚 悠

各プログラムにコメント追記

parent ceca82c6
<!-- 指定したファイルを読み込み、URLと思われる文字列を正規表現により取得し、出力する-->
<html>
<head>
<title>正規表現によるデータ検索</title>
......
<!-- ゲストブックに書き込むフォームを表示する
送信された内容はguest_write.phpに渡される -->
<html>
<head>
<title>ゲストブック</title>
</head>
<body>
<!-- ccc...灰色 -->
<h1 style="background:#cccccc">ゲストブック(書き込み)</h1>
<!-- 入力フォーム。<form~で作成-->
<form method="POST" action="guest_write.php">
お名前:
<!-- size.. maxlength...最大文字数 -->
<input type="text" name="name" size="20" maxlength="30" /><br />
メッセージ:
<input type ="text"name="message" size="70" maxlength="255" /> <br />
......
<!-- -->
<html>
<head>
<title>ゲストブック</title>
......
<?php
// guest_input.phpから入力情報を受け取り、
// 内容を指定したファイルに追記する。
// 追記するファイルを指定する第二引数を"a"をすると、追記が可能となる。
$file=fopen("guet.dat","a");
flock($file,LOCK_EX);//ファイルをロック(他ユーザが編集できなくなる
//ファイルをロック(他ユーザが編集できなくなる
flock($file,LOCK_EX);
//$line変数に書き込む文字列を連結していく。\tはタブ。
$line =date("Y年 m月 d日 H:i:s")."\t";
$line.=$_POST['name']."\t";
$line.=$_POST['message']."\t";
fputs($file,$line."\n");
flock($file,LUCK_UN);//ファイルのロックを解除
//ファイルのロックを解除
flock($file,LUCK_UN);
fclose($file);
header("Location: guest_input.php");
?>
\ No newline at end of file
<?php
//RSSデータを作成する
//
//外部ライブラリのインクルード
require_once("rss10.inc");
......@@ -9,13 +12,11 @@ $objRss = new RSSWriter("http://www.wings.msn.to/",
"dc:pblisher" => "YAMADA, Yoshihiro",
"dc:creator"=> "YAMADA, Yoshihiro <CQW15204@nifty.com>"
));
//新着情報の登録
$objRss -> setImage("http://www.wings.msn.to/image/wings.jpg",
"サーバサイド技術の学び舎 - WINGS", 150, 90);
//サマリ情報の登録
$file = fopen ("data.dat", "r");
while ($row = fgets ("file, 1024")) {
$datum = explode("\t", $row);
$objRss -> addItem ($datum[0], $datum[1],
......
<!-- amazonの書籍DBを検索するWebサービスを利用する -->
<html>
<head>
<title>Amazon Webサービスの活用</title>
......@@ -30,7 +31,7 @@ if ($_POST['keywd'] != '') {
foreach ($result -> Details as $item) {
?>
<!-- 検索結果の記述 -->
<!-- 検索結果の出力 -->
<tr>
<td><?php print(++$i)?></td>
<td>
......
<!-- rss.xmlに記載したRSSデータを読み込み、出力する。 -->
<html>
<head>
<title>RSSフィードの読み込み</title>
......@@ -20,7 +21,7 @@ foreach ($objXml -> site as $site) {
?>
<dl>
<dt style = "font-weight:bold;"><?php
//タイトルがnullや空でな場合はEUC-JPに変換して出力
//タイトルがnullや空でない場合はEUC-JPに変換して出力
if(!is_null($site -> title) && $site -> title != "") {
print(mb_convert_encoding($site -> title, "EUC-JP", "auto"));
} else {
......
<?php
//PDFlib/PDIによるPDFの自動生成
//PDFlib/PDIによリ、PDFを自動生成する。
//生成するPDFは、指定したテンプレートを使用し、指定した文字列を出力する。
//PDFファイル生成
$objPdf = pdf_new();
......@@ -8,24 +9,24 @@ pdf_begin_document($objPdf, "", "");
//PDFの構成文書設定(Author -> Yoshihiro yamada)
pdf_set_info($obfPdf, "Author", "Yoshihiro yamada");
//テンプレートとなるファイルを指定する
//テンプレートとなるファイルを指定する。
$objTmp = pdf_open_pdi($objPdf, dirname(__FILE__)."/template.pdf", "", 0);
//利用するページを選択する
$objPag = pdf_open_pdi_page($objPdf ,$objTmp, 1, "");
//PDFファイルに新規にページを追加する
//PDFファイルに新規にページを追加する。
pdf_begin_page_ext($objPdf, 10, 10, '');
//テンプレートとなるファイルを作成したページに貼り付ける
//adjustpageを指定することで、サイズが自動調整される
//テンプレートとなるファイルを作成したページに貼り付ける。
//adjustpageを指定することで、サイズが自動調整される。
pdf_fit_pdi_page($objPdf, $objPag, 0, 0, "adjustpage");
//フォントや行間などを設定する
//フォントや行間などを設定する。
$objFnt = pdf_load_font($objpdf, "HeiseiMin-W3", "EUC-H", "");
pdf_serfont($obgPdf, $objFnt, 14);
pdf_set_valuse($objPdf, "leading" ,20);
pdf_set_text_pos($objPdf,100, 600);
//作製したPDFに文字列を出力する
//作製したPDFに文字列を出力する。
pdf_show($objPdf, "サーバサイド技術の学び舎 - WINGS");
pdf_continue_text($objPdf, "http://www.wings.msn.to/");
......@@ -34,6 +35,6 @@ pdf_close($ogjPdf);
pdf_close_pdi($objPdf, $objTmp);
header("Content-type: application/pdf");
header("Cotent-disposition: attachment; filename = result.pdf");
print(pdf_get_buffer($ogjPdgf)
print(pdf_get_buffer($ogjPdgf));
pdf_delete($objPdf);
?>
\ No newline at end of file
<!-- graph_gen.phpで出力する棒グラフのタイトルを設定する -->
<html>
<head>
<title>棒グラフの動的生成</title>
......
<?php
//JpGraphによる棒グラフの生成
//JpGraphにより、棒グラフを生成する。
//グラフタイトルは、jpgraph.phpから読み込む。
require_once ("jpgraph/jpgraph.php");
require_once ("jpgraph/jpgraph_bar.php");
......@@ -8,22 +10,26 @@ $objGrh = new Graph(450, 250, "auto");
$objGrh -> SetScale("textlin");
$objGrh -> title -> Set("Books Trend");
$objGrh -> xaxis -> title -> Set("2005.4Q");
$objGrh -> yaxis -> title-> Set("Quantity");
$objGrh -> yaxis -> title -> Set("Quantity");
//グラフのデータ設定
//大きさ
$data = array(array(350, 200, 280), array(295, 150, 290), array(295, 150, 290), array(315, 180, 220));
$objPlot[] = new BarPlot($data[0]);
$objPlot[] = new BarPlot($data[1]);
$objPlot[] = new BarPlot($data[2]);
//書くグラフのタイトル
$objPlot[0] -> SetLegend('PHP');
$objPlot[1] -> SetLegend('ASP');
$objPlot[2] -> SetLegend('ASP');
//色
$objPlot[0] -> SetFillcolor('red@0.7');
$objPlot[1] -> SetFillcolor('blue@0.7');
$objPlot[2] -> SetFillcolor('green@0.7');
//グラフの出力
$objGbp = new GroupBarPlot($objPlot);
//グラフ(画像)の全体幅に対する比率
$objGbp -> SetWidth(0.90);
$obpGrh -> Add($objGbp);
$objGrh -> Stroke();
......
<?php
// login.phpにアクセスする際に、
require_once (Auth/Auth.php);
// ログインページを生成するための関数
......@@ -7,7 +9,7 @@ function Mylogin()
require_once ("login.php");
}
// 認証する
// .phpのファイルにアクセスされた場合に、非認証であれば認証する
$param = array(
// DBへの接続パス
"dsn" => "sqlite://localhost/schedule.sqlite",
......@@ -20,7 +22,7 @@ $param = array(
$auth = new Auth("DB", $passwd, "MyLogin", TRUE);
$Auth -> start();
if ($auth -> getUsername() == "") {
if ($auth -> getUsername() == "" ) {
//未承認→強制終了する
exit(1);
}
......
<?php
//データベースへの接続
// データベースから、schedule_read.phpのフォームで選択したスケジュールと一つ削除する。
// データベースへの接続
$db = sqlite_open("schedule.sqlite", 0666, $err);
//SQL命令の発行
// SQL命令の発行
sqlite_query($db, "DELETE FROM schedule WHERE sid ='".sqlite_escape_string($_GET['sid'])."'");
//データベースの切断
// データベースの切断
sqlite_close($db);
header("Location: schedule_read.php");
......
<?php
// httpヘッダの出力
// スケジュール情報をダウンロードする
// HTTPヘッダの出力
header("Content-Type: application/octet-stream");
header("Content-Dispsition: attachment;filename = schedule.txt");
......@@ -8,7 +10,7 @@ require_once ("DB.php");
// データベースへ接続
$db = DB::connect("sqlite://localhost/achedule.sqlite");
// SQL文の発行
// SQL文 スケジュールを日時に基づいて並び替えて引き出す
$stt = $db -> prepare("SELECT * FROM schedule ORDER BYs_date,s_time");
$rs = $db -> execute($stt);
......@@ -19,6 +21,6 @@ while ($row = $rs -> fetchRow(DB_FETCHMODE_ASSOC)) {
print(mb_conert_encoding($row['memo'], "SJIS", "auto")."\r\n");
}
//切断
// 切断
$db -> disconnect();
?>
\ No newline at end of file
<?php
//データベースへ接続
// schedule_record.phpで入力されたスケジュールを出力する。
// データベースへ接続
$db = sqlite_open("schedule.sqlite", 0666, $err);
//SQL命令の発行
// SQL命令文 日時順にスケジュールを並び替える。
$rs = sqlite_query("SELECT * FROM schedule ORDER BY s_date, s_time" ,$db);
?>
<html>
......@@ -15,7 +17,7 @@ $rs = sqlite_query("SELECT * FROM schedule ORDER BY s_date, s_time" ,$db);
<th>日付</th><th>時刻</th><th>予定名</th><th>備考</th><th>削除</th>
</tr>
//取得した結果セットを出力
<!-- 取得した結果を出力 -->
<?php while ($row = sqlite_fetch_array($rs)){ ?>
<tr>
<td><?php print($row['s_date']); ?></td>
......@@ -27,9 +29,7 @@ $rs = sqlite_query("SELECT * FROM schedule ORDER BY s_date, s_time" ,$db);
</tr>
<?php
}
?>
<!-- データベースの切断 -->
// データベースの切断
sqlite_close($db);
?>
</table>
......
<?php
// スケジュールを登録する。
// 登録したスケジュールは、schedule_read.phpにて読み込まれる。
//コンボボックスを定義する。
function showopt($start, $end)
{
for($i = $start; $i <= $end; $i++) {
print("<option valur = '".$i."'>".$i."</option>");
print("<option value = '".$i."'>".$i."</option>");
}
}
?>
......
<?php
//データベースを操作し、
//データベースへ接続
$db = sqliyr_open("schedule.sqlite", 0666, $err);
$s_date = $_POST['s_date_year']."/".$_POST['s_date_month']."/".$_POST['s_date_day'];
$s_time = $_POST['s_time_hour'].":".$_POST['s_minute'];
//SQL命令
//SQL命令文 スケジュール入力フォーム(schedule_record.php)で入力した値を挿入する
splite_query($db, "INSERT INTO schedule(title, s_date, s_time, memo) VALUES('".sqite_escape_string($s_date)."','".sqlite_escape_string($s_time)."','".sqlite_escape_string($_POST['memo'])."')");
//データベースから切断
......
<?php
//callから送られた三角形の大きさを元に、面積を返す
class Triangle
{
private $width;
......@@ -12,21 +14,29 @@ class Triangle
//デストラクタ…破棄されるときに呼び出される
public function __destruct(){ /*デストラクタ*/ }
// 底辺の長さを返す
public function get_width() {return $this -> width;}
// 高さを返す
public function get_height(){return $this -> height;}
//底辺の長さを設定する
public function set_width($width) {
if (i_numeric($width)) {
$this->width=$width;
}
}
// 高さを設定する
public function set_height($height)
{
if (is_numeric($height)) {
$this->height=$height;
}
}
// 免責を返す
public function get_area()
{
return $this->get_width() * $this->get_height() / 2;
......
<!-- 三角形の面積を設定した三角形の大きさから計算し、出力する -->
<html>
<head>
<title>オブジェクト指向入門</title>
......@@ -16,7 +18,9 @@ function __autoload($name)
$objCls = new Triangle();
$objCls -> set_width(10);
$objCls -> set_height(20);
// 20*10の三角形の面積:事前にセッターでセットした値を使って計算する
print("三角形の面積:".$objCls -> get_area()."<br>");
// 15*5の三角形の面積:引数を使って計算する
print("三角形の面積:".Triangle::calculate_area(5,15));
?>
</body>
......
<?php
// 図形の面積の大きさのゲッター、セッター、
// get_area()(面積を返す)を用意している、Triangle.class.php,Square.class.phpの
abstract class Figure
{
private $width;
......@@ -31,7 +34,7 @@ abstract class Figure
$this -> height = $height;
}
}
//抽象メソッド
// 抽象メソッド
public abstract function get_area();
}
?>
<?php
//四角形の大きさから、面積を計算して返す
//Figureを継承しているため、ゲッター、セッター、get_area()は宣言済みの扱い
class Square extends Figure
{
public function __construct()
{
parent::__construct();
}
//オーバーライド
public function get_area()
{
return $this -> get_width() * $this -> get_height();
......
<?php
//三角形の大きさから、面積を計算して返す
//Figureを継承しているため、ゲッター、セッター、get_area()は宣言済みの扱い
class Triangle extends Figure
{
public function __construct()
......
<!-- 設定した三角形、四角形の大きさを元に、面積を求める -->
<html>
<head>
<title>オブジェクト指向入門(ポリモーフィズム)</title>
......@@ -5,7 +6,6 @@
<body>
<h1 style = "background:#cccccc">オブジェクト入門(ポリモーフィズム</h1>
<?php
// autoload関数の定義
function __autoload($name)
{
......@@ -13,10 +13,13 @@ function __autoload($name)
}
// Triangleクラス(Triangle.class.phpに有る)のインスタンス化
// 三角形の大きさをセットし、get_area()関数で計算する
$objTri = new Triangle();
$objTri -> set_width(10);
$objTri -> set_height(20);
print("三角形の面積:".$objTri -> get_area()."<br>");
// Squareクラス(Square.class.phpに有る)のインスタンス化
// 四角形の大きさをセットし、get_area()関数で計算する
$objSqr = new Square();
$objSqr -> set_width(10);
$objSqr -> set_height(20);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment