~ Webプログラミングの基礎~ ~PHPの基礎(1) (2011/05/18) 政策情報学部 渡辺恭人 [email protected] メーリングリスト:[email protected]: 資料ページ: http://www.cuc.ac.jp/~riho-m/rg11/ Webプログラミングの世界 • Webアプリケーションを効率的に開発、運用 するための技術が日々進化している • Webプログラミングに必要な技術 – バラバラに存在しているのではない – それまでの技術では解決できない何らかのニー ズをみたすために出現 • 何が必要とされ何が受け入れられてきたのか を見ていくことで進化を学ぶ 2 WWWの仕組み • WWWサーバとWWWクライアントの通信 – Webサーバは、HTTPのリクエストを受けて、 HTMLを出力する リクエスト(GET) 取得したい WWWクライアント URLを要求 (ブラウザ) (URL+ヘッダ) 取得したデータを 解釈(PARSE)して 表示(RENDERING) WWWサーバ レスポンス HTML, XMLなどの データ+ヘッダを送 信 3 静的なWebサイト • ブラウザがURLでWebサーバにファイルを要 求(リクエスト)する • Webサーバは、要求されたURLに対応する ファイルを探して、その中身を送り返している だけ • Webページが出来合いのファイルとしてあら かじめ作られていて、どういう要求に対しても、 常に「同じレスポンス」を返す 4 静的なWebサイト ブラウザ Webサーバは、要求され たファイルの中身をその まま送り返す Web サーバ Webページ 5 Webプログラミング • 同じ要求(リクエスト)が来ても、状況に応じて 「違った応答(レスポンス)」を返す「動的な Webサイト」を作ること • ブラウザからの要求(リクエスト)に応じてWeb サーバがそれに対応したファイルを探し出す ところまでは「静的なWebサイト」と同じ • 探し出したファイルをプログラムとして実行し、 そのプログラムが生成した結果をレスポンス として送り返す点が異なる – Webプログラム 6 Webプログラミングに必要なもの • Webサーバ – Apache • プログラミング言語 – VB Script – JavaScript – Perl – PHP – Java – など 7 動的なWebサイト ブラウザ Web サーバ 他のシステム Webサーバは、 要求されたファイ ルを実行し、その 出力を送り返す Web プログ ラム データベース 8 動的なWebサイト • 要求を受けてからレスポンスを作る – 応答時間が余計にかかる – Webサーバへの負荷も増える • その代り、コンピュータプログラムでできること ならどんな処理でも作りこめる – データベースサーバに接続するWebプログラムで、 膨大なデータから必要なデータを選択してレスポ ンスする • オークションや検索サイト、ブラウザで電子メールを読 み書きする 9 HTML文書を表示させる • EmEditorを起動 • ツールバーをクリックして • HTML文書を選ぶ 10 HTML文書の作成 <html> <head> <title>Hello, World.</title> </head> <body> Hello World! </body> </html> 11 HTML文書の保存と表示 • メニューバー「ファイル」⇒「名前を付けて保 存」 • 保存場所 – 適当に(My Document)あたり • ファイル名:hello.html • WinSCPでlogin.cuc.ac.jpに接続する – Web_localに転送する • ブラウザで開く – http://www2.cuc.ac.jp/~ユーザ名/hello.htm 12 PHPを使ってみる • PHPスクリプトの基本構文 – 「<?php」と「?> 」で囲む – PHP処理文の最後は「セミコロン(;)」で終わる – ファイルの上から下に処理が実行される – ファイルの最後に到達するとプログラムが終了す ここに囲まれた部分が る PHPスクリプト <?php print ”Hello, World!”; ?> 命令 文字列 13 PHPプログラムの入力 • EmEditorを起動 • ツールバーをクリックして • PHPを選ぶ – 自動的に入力される文字列は消す • 以下のように入力します。 <?php phpinfo(); ?> 14 PHPプログラムの保存、実行 • メニューバーの「ファイル」⇒「名前を付けて保 存」 • 保存場所:適当(My Documentあたり) • ファイル名:info.php • WinSCPでlogin.cuc.ac.jpに接続する – Web_localに転送する • ブラウザで開く – http://www2.cuc.ac.jp/~ユーザ名/info.php 15 16 hello.htmlと同じ内容をPHPで。 • HTML部分は通常のHTMLとしてWebブラウザ に出力される • PHP部分は、実行され、動的な値(この場合文 字列)を生成して、print構文を使って、HTML に出力する。 • ファイルの拡張子は必ず「.php」 <html> <body> <?php print ”Hello, World!”; ?> </body> </html> 17 PHPプログラムの保存、実行 • メニューバーの「ファイル」⇒「名前を付けて保 存」 • 保存場所:適当(My Documentあたり) • ファイル名:hello.php • WinSCPでlogin.cuc.ac.jpに接続する – Web_localに転送する • ブラウザで開く – http://www2.cuc.ac.jp/~ユーザ名/hello.php 18 間違えたら・・・ • 実行したときに、エラーメッセージが表示され る – 例、printをpointにすると、構文エラーとして「 syntax error」が表示される • 何行目にエラーが発生しているかを通知して くれる – でも実際のエラー部分とは異なることが多い – 前後を見直そう 19 プログラム中のコメントの書き方 • プログラム中でメモを残したいときに「コメント 」を使う – プログラムとしては実行されない – まとまった処理内容、書き残しなどを書く • 書き方 – 「/*」で始まり、「*/」で終わるコメント • 複数行をコメントできる – 「//」で始まり、改行すると終わるコメント – 「#」で始まり、改行すると終わるコメント 20 変数 • データを格納する箱 – 処理の途中結果を一時的に保存しておく • PHPの変数 – 「$」記号で始まる • 例、$memoryなど • 内容 – 数値、文字列など • 文字列の場合は、「”」で文字列を囲む。 21 変数 <?php 変数に数値を代入 $memory1 = 768; $memory2 = 256; $memory_total = $memory1 + $memory2; ?> $memory1と$memory2を <html> 加算して$memory_totalに <body> 代入 メモリ合計は <?php print $memory_total; ?>MBです。 </body> $memory_totalを </html> print構文で出力 22 PHPプログラムの保存、実行 • メニューバーの「ファイル」⇒「名前を付けて保 存」 • 保存場所:適当(My Documentあたり) • ファイル名:mem.php • WinSCPでlogin.cuc.ac.jpに接続する – Web_localに転送する • ブラウザで開く – http://www2.cuc.ac.jp/~ユーザ名/mem.php 23 演算子 • 一つ以上の値から、別な値を導き出す 記述例 $a + $b $a - $b $a * $b $a / $b $a % $b 解説 $aと$bの合計 $aと$bの差 $aと$bの積 $aと$bの商 $aを$bで割った余り 算数と同じように、乗算・除算・剰余は、加算・減算より優先順位が高い。 先に計算する場合は、カッコを使う。 24 代入演算子 記述例 $a = $b $a += $b $a -= $b $a *= $b $a /= $b $a %= $b $a .= $b $a++ $a-- 解説 $aに$bの値を代入 $aに$bの値を加算して代入 $aに$bの値を減算して代入 $aに$bの値を乗算して代入 $aに$bの値を除算して代入 $aに$bの値を剰余算して代入 $aに$bの文字列を結合して代入 $aに1を加算した値を$aに代入 $aに1を減算した値を$aに代入 25 代入演算子 例1: dainyu1.php <?php 例2: 5/18はここで終了 次回はp.27からです。 dainyu2.php $a = 10; $b = 20; <?php $a = ”PHPは”; $b = ”とても”; $c = ”たのしい”; $a += $b; $a++; print $a; ?> $a .= $b; $a .= $c; print $a; ?> それぞれ、入力して保存し、実行して、結果を確かめてみよう! 26 変数名の規則 • 使える文字列 – – – – a A 0 _ ~ z ~ Z ~ 9 ※1文字目には使えない (アンダーバー) 27 変数のデータ型 型の種類 英語名 解説 例 論理型 boolean TRUE(真)かFALSE(偽)の どちらか $a = true; 整数型 integer 10進数・16進数(先頭が 0x)・8進数(先頭が0) $a = 1234; $a = -1234; $a = 0123 $a = 0x1A 浮動小数点型 float 小数を扱う値 $a = 1.234 文字列型 string 「”」ダブルクォーテーション $a = ”Hello, World!”; か「’」シングルクォーテー ションで囲まれた値 配列 array 後述 オブジェクト object 後述 リソース resource 後述 NULL null 変数に何も値が代入され てない場合を表す。 $a = null; 28 文字列の扱い • 文字列を表現する場合は、 – シングルクォーテーション – ダブルクォーテーション (’)か、 (”)で括る • シングルクォーテーションやダブルクォーテー ションを表示させたい – 文字の前に「¥」を記述する ファイル名: quote_hyouji.php 入力して、保存、転送、実行してみましょう <?php print 'I¥'ll be back. <br />'; print "¥"ダブルクォーテーション¥"を表示する。"; ?> 29 実験 ファイル名: quote.php 入力して、保存、転送、実行してみましょう <?php $hensu1 = 'もも'; print print print print '1.くだものは "2.くだものは "3.くだものは "4.くだものは $hensu1 です。<br />'; $hensu1 です。<br />"; $hensu1です。<br />"; {$hensu1} です。<br />"; ?> 30 課題(1) • 次回までで面白いと思った記事を見つけ、記 事を要約して、感想を述べなさい。 • 記事はいくつでも可 • Wordなどのワープロでまとめる • ファイル名 – kadai0518-1-学籍番号.doc • メールで[email protected]に提出 • 締切:5/24 18:00まで 31 課題(2) • 今日の実行結果(p.26まで)とプログラムを Wordなどのワープロでまとめて、メールで [email protected]に提出 • ファイル名: kadai0518-2-学籍番号.doc • 締切:5/24 18:00まで • 実行画面を画像として取得するには、取得し たいウィンドウをクリックした後、 [ALT]+[PrintScreen]でクリップボードにコピーさ れるので、その後、Wordで貼り付ける。 32
© Copyright 2025 ExpyDoc