Ｆｉｌｅ ＃１

1

2000/11/5 H.TeradaPHP入門2

2000/11/5 H.Terada

PHPとは・・・Apacheに組み込んで使用するHTML埋め込み型のスクリプト言語。
・Perlに勝るとも劣らない言語仕様を持ち、各種DBへの豊富なI/F。

・Rasmus-LerdorfがPerlで書いた小さなCGIラッパーだった。
・プロセス生成コストを下げる目的でC言語にポーティング。
→ PHP(Personal-Home-Page-Tools)
・SQLによるDBMSアクセスを提供するツールもリリース。
→ FI(Form-Interpreter)
・98年、PHP/FIからポーティングされたPHP3がリリース。
・00年、PHP4がリリース。
3

2000/11/5 H.Terada

PHPの特徴
・Scriptである。
コンパイル不要ゆえに、ソース修正～テストのサイクルが短縮可能。
・HTML文書への埋め込み型言語。
Perlと違って、２本のScriptを書く必要がない。
・確実なエラーハンドリング。
Script実行時に発生するエラーがブラウザーに表示される。
・Cライクな文法。
C言語のInterpreter版みたいなもの。
・Perlライクな機能。
文字列演算子や関数がPerlライク。
・Apacheのモジュールとして動作。
(別プロセスとして起動される)CGIと違って、リソースの節約が可能で処理高速。
・各種DBへの豊富なI/F。
PostgreSQL、MySQL、Oracle、Sybase、Infomix等とI/F可能。
4

2000/11/5 H.Terada

静的なWebページ①URLリクエスト

WWW

PC②HTMLドキュメント

5

2000/11/5 H.Terada動的なWebページ～ CGI ～

①URLリクエスト②プロセス生成

WWW

PC④HTMLドキュメント

CGI③HTMLドキュメント③CGI実行

6

2000/11/5 H.Terada動的なWebページ～ PHP ～

①URLリクエスト
HTML処理部PC

Script
処理部②HTMLドキュメント③CGI実行

7

2000/11/5 H.Terada

Sample #1<html><body><?
/*01.php3*/

echo("ここはPHPコードの部分です。");?></body></html>8

2000/11/5 H.Terada

Sample #2<?
// 02.php3

echo("<html>");echo("<body>");echo("このスクリプト全体がPHPコードです。");
echo("</body>");echo("</html>");?>9

2000/11/5 H.Terada

Sample #3<!-- 03.php3 --><html><body><?
$a = 1; $b = 2;$c = $a + $b;
echo $c;?></body></html>10

2000/11/5 H.Terada

演算子$a + $b$a % $b$a++$a - $b$a . $b$a--$a * $b++$a$a / $b--$a$a = $a + $b;$a++;112000/11/5 H.Terada

比較演算子

論理演算子$a == $b$a && $b$a != $b$a || &b$a <$b!$a$a >$b$a <= $b

$a and $b$a >= $b$a or$b$a xor $b
If($a==$b)
if(!$a)12

2000/11/5 H.Teradaビット演算子

代入演算子$a =$b$a & $b$a += $b$a | $b$a -= $b~$a$a *= $b$a /= $b
$a %= $b
$a .= $b$a = $a + $b;$a += $b;
13$a &= $b$a |= $b
2000/11/5 H.Terada

If 文 #1

If($a==0)
echo ‘$a=0’;
elseif($a==1)
echo “¥$a=1”;
elseif($a>1){
echo ‘$a>1’;}else
echo ‘$a<0’;14

2000/11/5 H.Terada

If 文 #2

If($a==0):
echo ‘$a=0’;
elseif($a==1):
echo “¥$a=1”;
elseif($a>1):
echo ‘$a>1’;
else:
echo ‘$a<0’;
endif;
15

2000/11/5 H.Terada

while 文$a=1;
While($a>0){
echo “このループは$aが正の限り実行され続けます”;
$a--;
}
$a=1;
While($a>0):
echo “このループは$aが正の限り実行され続けます”;$a--;endwhile;
16

2000/11/5 H.Terada

do 文

$a=0;
do{
echo “do文は最低１回は実行されます”;$a--;}while($a>0);17

2000/11/5 H.Terada

for 文$a=0;
for( $i=0; $i<10; $i++){$a = $a + $i;}
echo $a;45
18

2000/11/5 H.Terada

for 文 + 改行
$a=0; $b=0;
for( $i=0; $i<10; $i++){$a = $a + $i;$b += $i;}

19

echo “$a = $a”;

echo “¥$a = $a<br>¥n”;

echo “$b = $b”;

echo “¥$b = $b<br>¥n”;

45=4545=45

$a=45
$b=45
2000/11/5 H.Terada

break 文for( $i=0; $i<10; $i++){for($j=0; $j<10; $j++){if($j>1)

break;

if($j>2)

break 2;echo “¥$i=$i, ¥$j=$j<br>¥n”;}}

20

2000/11/5 H.Terada

switch 文

continue 文

Switch($a){
case “0”:for($i=0; $i<10; $i++){if($i%2)

echo “0”;continue;break;

echo “$i”;

case “ABC”:}

echo “ABC”;
break;
default:echo “others”;}

21

2000/11/5 H.Terada

Sample #4<!-- 04.php3 --><html><body><?

for($i=0; $i<10; $i++)
print(”$i");?></body></html>222000/11/5 H.Terada

Sample #5<!-- 05.php3 --><html><body><?

for($i=0; $i<10; $i++)
print(”$i<br>");?></body></html>23

2000/11/5 H.Terada

Sample #6<!-- 06.php3 --><html><body><?

for($i=0; $i<10; $i++)
print(”$i<br>¥n");?></body></html>24

2000/11/5 H.Terada

Sample #7<!-- 07.php3 --><html><body><?

for($i=1; $i<10; $i++){for($j=1; $j<10; $j++){$k = $i*$j;
print("$k");}
print("<br>");}?></body></html>25

2000/11/5 H.Terada

Sample #8<!-- 08.php3 --><html><body><?

for($i=1; $i<10; $i++){for($j=1; $j<10; $j++){$k = $i*$j;
printf(”%3d”, $k);}
print("<br>");}?></body></html>26

2000/11/5 H.Terada

Sample #9<!-- 9.php3 --><html><body><?

print("<table border=1>");for($i=1; $i<10; $i++){print("<tr>");for($j=1; $j<10; $j++){$k = $i*$j;
print("<td>$k</td>");}print("</tr>");}print("</table>");27?></body></html>2000/11/5 H.Terada

Sample #10<!-- 10.php3 --><html><body><?

print("<table border=1>");for($i=1; $i<10; $i++){print("<tr>");for($j=1; $j<10; $j++){$k = $i*$j;
print("<td><img src=¥”images/$k.gif¥”></td>");}print("</tr>");}print("</table>");?></body></html>28

2000/11/5 H.Terada

Sample #11<!-- 11.php3 --><html><body><?

print("<table border=1>¥n");for($i=1; $i<10; $i++){print("<tr>¥n");for($j=1; $j<10; $j++){$k = $i*$j;
print("<td><img src=¥"images/$k.gif¥"></td>¥n");}print("</tr>¥n");}print("</table>¥n");?></body></html>29

2000/11/5 H.Terada

Sample #1230

2000/11/5 H.Terada

Sample #13

31<!-- 13.php3 --><html><body><form>○単一行テキスト<input type=text name=a size=10 value="初期値"><hr>○ラジオボタン<input type=radio name=c value=c1>選択肢１<input type=radio name=c value=c2>選択肢２<input type=radio name=c value=c3 checked>選択肢２<hr>○送信ボタン<input type=submit><hr></form><?
print("¥$a=$a<br>¥n");print("¥$c=$c<br>¥n");?></body></html>2000/11/5 H.Teradazend-techzend.com32

2000/11/5 H.Terada

参考文献

33

PHP徹底攻略(Webとデータベースの連携プログラミング)
堀田倫英著、ソフトバンクパブリッシング\3,200-Aiムック224号(ApacheではじめるWebサーバー)
パッパラ大橋著、エーアイ出版\2,200-

PHPプログラミング入門(PHPによるWebアプリケーション開発)
レオン・アトキンソン著、
ピアソンエデュケーション\4,700-

オープンソースソフトウェアによる全文検索・データベースWebの作り方
西村めぐみ著、ソシム\2,600-

PostgreSQL完全攻略ガイド
石井達夫著、技術評論社\3,200-Linux/FreeBSDによるSQLデータベース構築入門
ローカス著、主婦の友社\4,800-2000/11/5 H.TeradaおしまいQ&A
Do you have any questions ?

34

2000/11/5 H.Terada