• 検索結果がありません。

1.PHP 入門 PHP の概要と PHP プログラムを作成するための 基本事項を説明します PHP とは PHP プログラムの構成 プログラムの実行

N/A
N/A
Protected

Academic year: 2021

シェア "1.PHP 入門 PHP の概要と PHP プログラムを作成するための 基本事項を説明します PHP とは PHP プログラムの構成 プログラムの実行"

Copied!
35
0
0

読み込み中.... (全文を見る)

全文

(1)

Agenda

1.PHP入門

PHP の概要と PHP プログラムを作成するための基本事項

2.PHP言語入門

PHP 言語の基本的な文法

3.データベースとPHPの連携

PHP でデータベースに接続し、データベースの操作を行う

4.Class入門

PHP のクラスと、クラスから生成されるオブジェクトについて

5.PEAR

PEARの役割について

(2)

1.PHP入門

PHP の概要と PHP プログラムを作成するための

基本事項を説明します。

□ PHP とは

□ PHP プログラムの構成

□ プログラムの実行

(3)

PHPとは

• PHP言語の特徴

PHPとは「PHP Hypertext Preprocessor」の略 C言語やJAVA、Perlなどと同じプログラミング言語 ※ファイルの拡張子が「 .php 」

□ インタープリタ型スクリプト言語

□ 文法が比較的容易 (厳密な型チェックなし)

□ CGIと比較すると、実行速度が早い

□ どのような種類のデータベースとも接続可能

□ Webアプリケーション開発に特化した言語

(4)

1: プログラムでHTMLを作成するタイプ

Program <HTML> <BODY> 200X年 X月 X日 ・・・ </BODY> </HTML> 200X年X<BODY> <HTML> <HTML> <BODY> 200X年 X月 X日 </BODY> </HTML> <HTML> <BODY> 200X年 X月 X日 ・・・ </BODY> </HTML> <HTML> <BODY> ・・・ </BODY> </HTML> <?php ?>

2: HTMLの中にプログラムを埋め込むタイプ

• HTMLを動的に生成する技術

(5)

1: サーバー上のプログラムを利用するタイプ

– CGI(Common Gateway Interface):

• 多種言語(C, VB, Perl)が利用できる • カウンター 、掲示板 、アンケートフォームなどの ページを作成することができる。

– Javaサーブレット:Java

• 処理効率が良い(サーバーのメモリ上に常駐) • セッション管理、DBアクセス、メール送受信機能を有する。

• HTMLを動的に生成する技術

(6)

2: HTMLの中にスクリプトを埋め込むタイプ

– ASP (Active Server Pages)

• 米マイクロソフトが開発した、Webサーバー用のサーバー・サイド・スク リプト処理機構。97年4月にリリースしたInternet Information Server3.0 に初めて搭載した。

– PHP (Hypertext Preprocessor)

• 無料で利用可能。プラットホームが幅広い、DBアクセスやメール関連 のライブラリが提供されている

• HTMLファイル内に直接記述するタイプのスクリプト言語。PHP/FI (Personal Homepage/Form Interpreter)の後継。

– JSP (Java Server Pages)

• 初回参照時にコンパイルされ、サーブレットとして動作。EJB等が利用 可能。

• 米サン・マイクロシステムズが1999年6月、JSPの最初の仕様 「JavaSever Pages 1.0」を策定した。

(7)

PHP プログラムの構成

<html> <head> <title>PHP World</title> </head> <body> </body> </html>

<?php

?>

PHPの開始

PHPの終了

PHPはHTMLの中に

埋め込むように記述します。

※拡張子は、『.php』

(8)

プログラムの実行手順

PHP プログラムのソースプログラムの作成から、 実行手順は以下のようになります。 実行 エディタを用いてソースファイルを作成 ※ファイル名には、拡張子 .php を付ける。 ブラウザからアクセス ※ Apacheが起動されていることが前提 ソースプログラムの作成 ファイルの保存

(9)

はじめてのPHPプログラム

文字を表示するプログラムです。(ファイル名:hello.php) 『実行方法』 ブラウザから、http://127.0.0.1/prog/hello.php にアクセスします。 ※Apacheが起動されていることが前提 <html> <body> <?php

print("Hello World!");

?> </body> </html> メモ帳に入力し、 Apacheをインストールした ディレクトリ 配下に progというフォルダを作成し その中にhello.phpという 名前で保存します。

(10)

2.PHP 言語入門

PHP 言語の基本的な文法を紹介します。

□ コメント

□ 変数

□ 型

□ 配列

□ 定数

□ 関数と引数

□ 演算子と演算子の優先順位

□ 分技文

□ ループ文

□ ファイル操作

□ HTTP関数

(11)

PHP 言語におけるコメントの指定は、以下のとおりです。 // この行の最後までをコメントとして扱う。 # この行の最後までをコメントとして扱う。 /* 複数行に渡ってコメント指定ができる。 */

コメント

例2 <html> <head> <title>はじめてのPHP</title> </head> <body> <?php /* 複数行コメントが記述できます。 */

print(”Hello World!”);

?> </body> </html> 例1 <html> <head> <title>はじめてのPHP</title> </head> <body> <?php //この行のみコメントが記述できます。 print(”Hello World!”);

?>

</body> </html>

(12)

変数

『変数』とは、一時的にデータの『値』を格納し、計算結果などによって その値の内容が変化する性質を持ちます。

文字列

配列

変数

$変数名 = 変数に代入する値

変数は、『代入演算子』によって値を 変数に格納する。 PHPでは、変数の行頭に 『$』をつける。 ・変数は『$』ではじめること ・変数に使える文字は英字、数字、アンダースコア ・変数名の始まりに数字は使えない ・変数名の大文字と小文字は区別される ※ApacheやPHPですでに定義されている変数もいくつかある (例、$_POST:HTMLから送られてくるデータを受け取る時に使用)

(13)

実習 : 変数に名前をつけて、値を代入してみよう! <html> <head> <title>はじめてのPHP</title> </head> <body> <?php //文字列を変数に代入し出力する $str = ” Hello World!”; print ($str ); ?> </body> </html>

(14)

変数は型を持ち、型はその変数が整数であるのか、 文字列であるのか表します。 例 <?php //変数の自動生成

$abcd= ” Hello World!”;

print ($abcd ); ?>

・文字列変数

ダブルコーテーション、シングルコーテーションで囲まれた変数

・数値変数

何も囲まれずに値を格納(文字列を何も囲まなければエラーとな る) ※PHPではこの『型』の判断をほぼ自動で行ってしまうので この『型』を意識しなくて良い。 ※変数が自動生成されるのでタイプミスに注意!

(15)

【論理型】 boolean型とも言い、「true」か 「false」の2種類 例 $var = true; 【整 数】 integer型とも言い、浮動小数点以下の値を持たない あるいは切り捨てられる値を持つ。 一般的な整数の範囲は、-2,147,483,645~2,147,483,645 例 $var = 1500; 【浮動小数点数】 float型、double型、real型ともよばれ、 小数点以下の数値を持つ。 例 $var = 3.14159265; 【文字列】 string型とも言い、文字列を値とした変数。 英字や漢字、かななどを扱うことができる。 文字列を代入する場合には、「’」 (シングルコーテーション) 「’’」(ダブルコーテーション)で囲みます。 例 $var = ’こんにちは!’; $var 2= ” こんにちは $var さん”;

(16)

《 型キャストの書式 》

(bool),(boolean) (int),(integer) (float),(double),(real) (string) (array) (object) →論理型へのキャスト(型変換) →整数型へのキャスト →浮動小数点へのキャスト →文字列へのキャスト →配列へのキャスト →オブジェクトへのキャスト 例 <html> <head><title>cast.php</title></head> <body> <?php $kaimono = 1234; $kaimono = $kaimono * 1.05; $seikyugaku = (int)$kaimono; print (“請求額は”.$seikyugaku.“円です”);?> </body> </html> 実行結果 ---請求額は1295円です

(17)

配列

配列とは1つの変数名で複数の値を格納できる。

color color color color color color

変数

配列

例 <html> <body> <?php $color[0]="red"; $color[1]="green"; $color[2]="blue"; $color[3]="yellow"; $color[4]="gold"; print_r($color); ?> </body> </html>

変数名[添え字]

※添え字(インデックス)

は0(ゼロ)から始まる

(18)

《連想配列》

インデックスが文字列の配列のもの

例 <html> <head><title>association_array</title></head> <body> <?php $like1['color']= "blue"; $like1['food']= "curry"; $like1['sports']="baseball"; print_r($like1); ?> </body> </html>

(19)

定数

変数と同じように値を格納するものですが、変数と違って 一度値を設定すると値が変更できません。 ※スクリプト内で何度も同じ値が出てくるような場合に使用 定数を定義するために、define()関数を使い、 定数名とその値を引数とする。 【定義済みの定数】 __FILE__ → 実行しているスクリプトファイル名 __LINE__ → 実行中の行数 FALSE → 偽の値 NULL → 値を持たないという意味の値 TRUE → 真の値 define( ”定数名” , ”値” )

(20)

関数とは、『あるまとまった処理や命令を1つの表現に置き換えて 簡単に使えるようにしたもの』 引数の役割は、『関数に値を渡すこと』

《ユーザ定義関数》

あらかじめ動作や機能が決められている関数ではなく ユーザが独自にその動作を決めることができる仕組み 「function」 という命令を使って定義し、「処理」の部分に 自分でまとめておきたい処理や機能を記述しておく。 必要時、この関数を呼び出せば、まとまった処理が簡単に実現でき 何度も再利用して使用することができる。

関数と引数

function 関数名 ( 引数 ) { 処理 }

(21)

例、合計金額から消費税を抜いた税抜き価格を計算する関数 <?php function calc($zeikomi) { $zeinuki = $zeikomi / 1.05; return $zeinuki; } ?> <html> <body> <?php print ( calc(105) ); ?> </body> </html> 作成した関数を呼び出す場合 作成した関数名( 引数 ) 実行結果 ---100

(22)

変数の有効範囲(ローカル変数とグローバル変数)

変数には有効範囲(スコープ)があり、関数内にあるものを ローカル変数、それ以外にあるものをグローバル変数と 呼びます。 <html> <head> <title>no_global.php</title> </head> <body> <?php $a = 1; function test(){ print ($a+1); } test(); ?> </body> </html> <html> <head> <title>global.php</title> </head> <body> <?php $a = 1; function test(){ global $a; print ($a+1); } test(); ?> </body> </html> 実行結果 ---1 実行結果 ---2

(23)

【算術演算子】

演算子 意味 例 結果 + 加算 $a + $b $aに$bを足す - 減算 $a - $b $aから$bを引く * 乗算 $a * $b $aに$bをかける / 除算 $a / $b $aを$bで割る % 剰余 $a % $b $aを$bで割った余り

演算子

加算子と減算子

++ 前置加算子 ++$a $aの値に1足した後、 $aを返す 後置加算子 $a++ $aを返した後、 $aの値に1足す -- 前置減算子 --$a $aの値から1引いた後、 $aを返す

(24)

【比較演算子】

演算子 意味 例 結果 == 等しい $a == $b $aが$bと等しい場合にTRUE === 型が同じで $a === $b $aが$bに等しく型が同じである 等しい 場合にTRUE != 等しくない $a != $b $aが$bに等しくない場合にTRUE <> 等しくない $a <> $b $aが$bに等しくない場合にTRUE !== 等しくないか $a !== $b $aが$bに等しくないか、同じ型で 型が異なる ない場合にTRUE < より小さい $a < $b $aが$bより小さい場合にTRUE > より大きい $a > $b $aが$bより大きい場合にTRUE <= より小さいか $a <= $b $aが$bより小さいか等しい場合に 等しい TRUE >= より大きいか $a >= $b $aが$bより大きいか等しい場合に 等しい TRUE

(25)

【論理演算子】 [演算子] [意味] and , && 論理積 or , || 論理和 xor 排他的論理和 ! 否定 【ビット演算子】 [演算子] [意味] & 論理積 | 論理和 ^ 排他的論理和 ~ 否定 << 左シフト >> 右シフト 【代入演算子】 [演算子] [意味] = 代入 【文字列演算子】 [演算子] [意味] . 結合

(26)

【複合演算子】

[演算子] [例] [結果] += a += b a + bの演算結果をaに代入 -= a -= b a - bの演算結果をaに代入 *= a *= b a * bの演算結果をaに代入 /= a /= b a / bの演算結果をaに代入 .= a .= b a . bの演算結果をaに代入

(27)

演算子の優先順位

優先順位 高い 低い 演算子 new [

! ~ ++ -- (int) (double) (string) (array) (object) @ * / % + - . << >> < <= > => == != === !== & ^ | && || ? : = += -= *= /= .= %= &= |= ^= ~= <<= >>= print and xor or ,

(28)

分岐文

if.else 文: if ( boolean 式) { 処理; } else if ( boolean 式) { 処理; } else { 処理; } Switch 文: switch ( 式 ) { case 定数式1: 処理; case 定数式2: 処理; ‥‥ default: 処理; } $point = 80; if ($point >= 70) { print (“合格です!”); } else { print (“残念!”); } $hyouka = "B"; switch ($hyouka){ case "A": print (“パーフェクト!”); break; case "B": print (“素晴らしい!”); break; case "C": print (“合格!”); break; default: print (“がんばりましょう!”); } サンプル

(29)

繰り返し制御(ループ)

for ループ

for (式1 ; boolean 式 ; 式2 ) { 処理; }

while ループ

while ( boolean 式 ) { 処理; }

do-while ループ

do { 処理; } while ( boolean 式 ) ; ループ文を制御するために提供されている制御文 break [ ラベル ]; continue [ ラベル ]; ラベル: 処理; return [ 式 ];

for ($a=0; $a<=5; $a++){ print ($a."<br />"); }

サンプル

$a=0; while ($a <= 5) { print ($a."<br />"); $a++; } $a=0; do { print ($a."<br />"); $a++; } while ($a <= 5);

(30)

foreach ループ

foreach ( 配列 as $value ) { 処理;

foreach ( 配列 as $key => $value ) { 処理;

サンプル

$color3=array(0=>'red', 1=>'green', 2=>'blue'); foreach ($color3 as $value) {

print ($value."<br />"); } 実行結果 ---red green blue

(31)

分岐と繰り返しのサンプルプログラム(break.php)

<html> <head> <title>break.php</title> </head> <body> <?php // break文

$arr_name = array (‘tanaka', 'sato', ‘suzuki', 'yamada', ‘kato');

foreach ($arr_name as $value) {

// 配列の要素を順に$valueに代入する if ( $value == 'yamada' ) { print $value . "さんです<br>"; break; // 'yamada'まできたらforeachを抜け出す } print "$value<br>"; } ?> </body> </html>

(32)

3.データベースとPHPの連携

□ データベースに接続する

□ データベースを操作する

(33)

データベースに接続する

mysql_connect( [ホスト名], [ユーザ名], [パスワード] ) →指定したホスト名で稼動するMySQLに、指定したユーザ名、パスワードで 接続します。接続に成功するとMySQLとの接続IDを、失敗するとFALSEが返ります。 mysql_select_db( データベース名, [接続ID] ) →指定したデータベースを利用できる状態にします。 成功するとTRUEを、失敗するとFALSEを返します。 mysql_query( クエリ, [接続ID] ) →クエリの実行を行います。 クエリがSELECT文の場合は、成功時にクエリの結果IDを返します。 DELETE、INSERT,UPDATE文については成功時にはTRUEを返します。 クエリ失敗時には、FALSEを返します。 mysql_free_result( 結果ID ) →結果を保持しているメモリを開放します。

(34)

サンプルプログラム(sample_connect.php)

<html>

<head><title>簡易接続</title></head> <body>

<?php

$conn = mysql_connect("localhost", "usr", "passwd"); mysql_select_db(“sampledb", $conn);

$res = mysql_query("SHOW TABLES",$conn); if($res){ print (“データ獲得に成功しました。”); } mysql_free_result($res); ?> </body> </html>

(35)

サンプルプログラム(sample_array_data.php)

<html><head><title>配列データの取得</title></head> <body> <table border="1"> <tr><td>題名</td><td>著者</td><td>出版社</td></tr> <?php $host = "localhost";

if (!$conn = mysql_connect($host, "usr", "passwd")){ die("MySQL接続エラー.<br />");

}

mysql_select_db(“sampledb", $conn);

$sql = "SELECT * FROM book_table"; $res = mysql_query($sql,$conn); while($row = mysql_fetch_array($res)) { print("<tr>"); print("<td>".$row["btitle"]."</td>"); print("<td>".$row["bauth"]."</td>"); print("<td>".$row["bpub"]."</td>"); print("</tr>¥n"); } mysql_free_result($res); ?> </table> </body> </html>

CREATE TABLE book (

bid int(10) unsigned NOT NULL auto_increment, btitle varchar(20) NOT NULL default '',

bauth varchar(20) NOT NULL default '', bpub varchar(20) NOT NULL default '', PRIMARY KEY (bid)

参照

関連したドキュメント

“〇~□までの数字を表示する”というプログラムを組み、micro:bit

本プログラム受講生が新しい価値観を持つことができ、自身の今後進むべき道の一助になることを心から願って

このアプリケーションノートは、降圧スイッチングレギュレータ IC 回路に必要なインダクタの選択と値の計算について説明し

LF/HF の変化である。本研究で はキャンプの日数が経過するほど 快眠度指数が上昇し、1日目と4 日目を比較すると 9.3 点の差があ った。

Q7 建設工事の場合は、都内の各工事現場の実績をまとめて 1

・カメラには、日付 / 時刻などの設定を保持するためのリチ ウム充電池が内蔵されています。カメラにバッテリーを入

*2: 一次+二次応力の計算結果が許容応力を上回るが,疲労評価を実施し疲労累積係数が許容値 1

40m 土地の形質の変更をしようとす る場所の位置を明確にするた め、必要に応じて距離を記入し