平成20年度 情報科学III (理系コア科目・2年生) PHP 概要 担当 岡村耕二 月曜日 2限 http://okaweb.ec.kyushu-u.ac.jp/lectures/jk3/ 本資料の一部は、堀良彰准教授、天野浩文准教授等による 1 以前の講義資料をもとにしています。 復習 • 手元のコンピュータでコンテンツを作成 • bossp.is.kyushu-u.ac.jp にコピーする – 文字コードに注意 – Winscp を使う • public_html にコピーする • bossp.is.kyushu-u.ac.jp にログインする – TeraTermPro を使う • export LANG=C (表示言語を英語にする) • 一番最初だけ(httpd がアクセスできるようにする) – chmod 711 . – chmod 711 public_html – chcon user_u:object_r:httpd_user_content_t public_html 2 学外から課題などをする場合 • 自宅の Windows XP に Winscp をインス トールします。 – Winscp のインストールについては http://winscp.net/eng/docs/lang:jp などを参考にしてください。 • 作成したファイルを ah.s.kyushu-u.ac.jp の 適当なディレクトリにコピーします。 • ah.s.kyushu-u.ac.jp に TeraTerm Pro など でログインします。 – TeraTerm Pro のインストールについては http://hp.vector.co.jp/authors/VA002416/ を参考にしてください。 ssh 拡張が必要です。 • ah.s.kyushu-u.ac.jp にログインしたら、さき ほど Winscp でコピーしたファイルを – scp ファイル bossp.is.kyushu-u.ac.jp:public_html を実行し、bossp にさらにコピーします。 3 – bossp.is.kyushu-u.ac.jp は、ah.s.kyushu-u.ac.jp から ssh コマンド 今回やること プログラミング言語PHPの基礎 – PHPが動く仕組み – PHPの文法(基礎編) 4 PHPが動く仕組み 5 PHPの特徴 PHP: Hypertext Preprocessor の略 – 頭文字を取って略称を作るおおもとの名前の中に,その略 称自体が含まれている. これ自体が1つのプログラミング言語であるが,HTML言語と組 み合わせて,特にwebページの動的な生成に用いられることが 多い. – HTMLで書かれた普通のwebページの中に,PHPプログラ ムを埋め込むことができる. 文法のかなりの部分は,以下の言語とよく似ている. – C – Perl 外部のデータベースにアクセスする関数をたくさん持っている. 6 HTMLファイルへのPHP埋め込みの簡単な例 <html> <head> <meta http-equiv="Content-Type" content="text/html"> <title>phpのテスト</title> </head> <body> <?php print("Hello, World!\n"); ?> </body> </html> 7 どのようにして処理されるか? ブラウザ ①ページのリクエスト webサーバ ②ページの取り出し HTML HTML PHP PHP処理用 モジュール ③PHP部分の処理 (結果はHTMLに埋 め込み) ④HTMLのみと なったページが ブラウザに返信 される (サーバサイドでの処理となっている) 8 PHP部分が処理されると… <html> <head> ... "Hello, World!" と印字して,改 </head> 行しなさい. <body> <?php print("Hello, World!\n"); ?> </body> </html> (これはブラウザでは正しく表示できない) <html> <head> ... </head> <body> Hello, World! </body> </html> (これならブラウザで表示できる) 「\n」は,改行文字を表す. 9 サーバ上での約束事 webサーバ上に置くファイルの拡張子 – HTMLのみのファイル: .html (または .htm) – PHPを含むファイル: .php 10 HTMLに埋め込むときのルール <html> <head> ... </head> <body> <?php print("Hello, World!\n"); ?> </body> </html> PHPで書かれた部分を <?php と ?> で囲む.ここで, <?php を 開始タグ ?> を 終了タグ と呼ぶ. 11 PHPの文法(基礎編) PHP の文法は下記のサイトにて公開されています。 http://www.php.net/manual/ja/ 12 PHPの文法(基礎編) 関数の呼び出し 文と文の区切り PHPからの「脱出」 コメント 変数とデータ型 演算子 制御構文 – if,else,elseif,while,for 文など 13 関数の呼び出し 関数は,( )で囲まれたデータ(引数)を受け取り,何かの処理 をして,結果を返す. – 「引数」は「ひきすう」と読む. print ( "Hello, World!\n" ) 関数名 引数 14 文と文の区切り 文と文の間は,セミコロン( ; )で区切る. print("Hello, ") ; print("World!\n"); ... ただし,PHPブロック(<?php と ?>で囲まれたひと連なりの部 分)の最後の文の後ろには,セミコロンがなくてもよい. <?php print("Hello, ") ; print("World!\n") ?> 15 PHPからの「脱出」 開始タグ <?php と終了タグ ?> をうまく組み合わせて使うと: – 1つのHTML文書の中で,「PHPから出たり入ったり」できる. – PHPブロックを複数箇所に埋め込むことができる. <html> ... <body> <?php print("Hello, World!\n"); ?> <p>ここは HTML の1行目.</p> <?php print("Hello, World, Again!\n "); ?> <p>ここは HTML の2行目.</p> </body> </html> 16 コメント CやC++のように,プログラムをわかりやすくするためのコメント (注釈)を書くことができる. – コメントは,人間が読むための記述で,PHPの文としては無 視される(何の処理も行われない). <?php print("Hello, World!\n"); // C++スタイルのコメントは // その行の終わりまで有効. /* Cスタイルのコメントは, 複数の行にまたがって書くことができる. */ print("Hello, World, Again!\n"); # シャープ文字で # で始まるコメント # もある. ?> 17 変数 PHPでは,変数名の頭に $ が付く. 例: 「$a」, 「$x」, 「$variable」 – 大文字と小文字は区別される. • $a と $A,$name と $Name は別の変数になる. – 英大文字,英小文字,数字,アンダースコア( _ )が使える. • ただし,最初は英字かアンダースコア • 数字で始まる変数名は不可 – C/C++ のような変数の型宣言が必要ない. • 使いたい型のデータをいきなり代入して初期化する. (宣言なしでいきなり代入してもエラーにならない.) • 逆に,初期化を忘れていてもエラーにはならないので, 気づきにくい. 18 データ型と初期化の例 文字列型 $name = "John"; $message = "Hello, World!\n" 代入文は 左辺に右辺を代入 する. 整数型 $count = 1; $age = 43; 論理型 $condition1 = TRUE; $condition2 = False; – 値は TRUE と FALSE のいずれか(大文字小文字は区別さ れない). 浮動小数点型 $pi = 3.1416; 19 演算子(1) 代入演算子: = 左辺に右辺を代入する. 例: $a = 0; 比較演算子 右辺と左辺を比較して,その結果を論理型の値(TRUE/ FALSE)で返す. == :左辺と右辺が等しい != :左辺と右辺が等しくない < :左辺が右辺より小さい > :左辺が右辺より大きい <= :左辺が右辺以下 >= :左辺が右辺以上 20 演算子(2) 連結演算子: . (ピリオド) – 左辺の文字列データに右辺の文字列データを連結する. $left . $right 算術演算子 + * / 論理演算子 AND 2つの論理型のデータに対して適用される. 例: $condition1 AND $condition2 OR NOT 1つの論理型のデータに対して適用される. 例: NOT $condition2 21 制御構文(1) if 文 – ある条件が成り立っているときだけ実行したいときに使う. • 条件が成り立つときは,内側の文を実行して,次の文に 進む • 成り立たなかったら,そのまま何もせずに次の文に進む. – 「条件分岐」ともいう. if (条件式) { 条件式が成り立つときに実行する文 } 次の文 22 制御構文(2) else 文 – if 文とペアにして,条件が成り立っていないときだけ実行し たい文を置く. if (条件式) { 条件式が成り立つときに実行する文 } else { 条件式が成り立たないときに実行する文 } 23 制御構文(3) elseif 文 – 先行する if 文の条件が成り立たなかったとき,次の条件を 検査する. if (条件式1) { 条件式1が成り立つときに実行する文 } elseif (条件式2) { 条件式2が成り立つときに実行する文 } else { どちらの条件式も成り立たないときに実行する文 } 24 制御構文(4) switch 文 – if ~ elseif ~ elseif ~…~ else でもいいが,条 件式が単一の変数で判定されるときには便利な構文があ る. (変数) { switch コロン(:)であるこ case "値1" : 変数の値が「値1」のときに実行する文 とに注意! break; case "値2" : 変数の値が「値2」のときに実行する文 break; ... default : 変数の値がどれとも一致しなかったときに実行する文 break; } 次の文 25 制御構文(5) while 文 – 条件が成り立つ間,何度でも繰り返す. – 条件式が成り立たなくなったら,次の文に進む. – while ループともいう while (条件式) { 条件式が成り立つときに実行する文 } 次の文 26 制御構文(6) do-while 文 – 最初は1回必ず実行する. – それが終わったら条件の検査をする. – 条件が成り立たなくなるまで繰り返す. do { 条件式が成り立つときに実行する文 } while (条件式) 次の文 27 制御構文(7) for 文 – 同じ処理を一定の回数繰り返したいときに用いる. – for ループともいう. 「カウンタを1に セットする」など 「カウンタが100以下 の間は…」など 「カウンタの値を1増やす」など for (初期化の式; 条件式; 1回終了したときの処理) { 繰り返し実行する文 } 次の文 28 まとめ 関数の呼び出し 文と文の区切り PHPからの「脱出」 コメント 変数とデータ型 演算子 制御構文 – if,else,elseif,while,for 文など 29 練習問題 1. 任意の数を生成して 表示させてみよう。 2. その数字が素数かどうか判定してみよう。 30 演習問題 問題1) PHP を用いて、1, 2, 3, .... , 99 と、カンマで区切られた1から99までの数字を すべて表示するプログラムを作成せよ。 問題2) 上の問題1の出力について、2の倍数は赤で、3の倍数は青で、6の倍数は 緑で表示するようにプログラムを改良せよ。 HTMLにおいてフォントの色を変えるには、次のようにするとよい。 <FONT COLOR=“FF0000”>赤</FONT>の場合 <FONT COLOR=“00FF00”>緑</FONT>の場合 <FONT COLOR=“0000FF”>青</FONT>の場合 31 RAMでの出席登録についての注意 教員が講義時間を設定するようになっている. – 出欠確認を開始してから,その講義時間が終了するまでの 間に登録しなくてはならない. – それを過ぎると,出席したことを登録できなくなるので,注意 すること. 32
© Copyright 2024 ExpyDoc