WebプログラミングU

 目次へ 次へ

2008/4/22 久米

PHP

1.PHPの基礎

PHPはサーバサイドスクリプト言語です。
JavaScriptやActionScriptではできなかった種々のアプリケーションを作れます。

PHPとActionScriptとJavaScript

  JavaScript ActionScript PHP
ベースの標準 ECMA SCRIPT ECMA SCRIPT  
実行場所 クライアントPC クライアントPC

サーバ

記述場所 htmlファイル。
htmlの中に下記のタグで括る。
<script type="text/javascript">
</script>
flaファイル。→swfファイル。 phpファイル。
htmlの中に下記のタグで括る。
<?php
?>
記述ツール テキストエディタツール Flashツール テキストエディタツール
コメント行 //コメント
/*コメント*/
同左 同左
命令の尻尾 命令; 同左 同左
変数種類 var
(宣言する場所でローカル、グローバル。
でもほとんどローカル変数でいける)
varはローカル変数に使用
その他にタイムライン変数とグローバル変数があり
宣言する場所でローカル、グローバル。
変数命名 大文字小文字は区別する。 
abcとABCとaBcは別のもの。
アルファベット、数字、_ で名前付ける。
先頭の文字は、アルファベットか _ 。
予約語は使えない。
Flash MX2004で同左
 
(1バイト文字も使えるが
せいぜい$までにしておきましょう)
変数の先頭に$マークをつける。
大文字小文字は区別する。 
abcとABCとaBcは別のもの。
アルファベット、数字、_ で名前付ける。
先頭の文字は、アルファベットか _ 。
予約語は使えない。
配列 x=new Array(5);
x[0]〜x[4]
x=new Array();
x[0]〜 自動的に増えるので5とかいらない
$x[0]=10;など
配列宣言は不要。
データ型 数値:1 10 0.123 1e3 012 0x12
文字列: "おはよう。" 'こんばんは。'
論理値: true false
同左 JavaScriptやActionScriptと同様に型を意識する必要がない。
演算子 + - * / ・・・
文字列の結合は+ (プラス)
同左 同左
ただし文字列の結合は . (ピリオド)
条件分岐文 if for while 同左 同左
関数 function 関数名(引数){ } 同左 同左
オブジェクト命名法 DOM ターゲットパス $オブジェクト名->変数名
$オブジェクト名->関数名()
イベント記述法 タグに記述 onClick="" 各アクションに記述 特になし

 

1.1PHPの基礎(1)

注)これから作るphpファイルは、
C:\Program Files\Apache Group\Apache2\htdocs\自分の名前 の中にフォルダに
入れてゆくことになる。そのフォルダ名やファイル名は、半角英数にすること。

1.1.1 記述方法

ファイル拡張子をphpとして保存する。これによって、
サーバ側でphpファイルとして処理され、最終的にHTMLコードが出力される。

  htmlの中に下記のタグで括る 説明 推奨
1 <?php
?>
 
2 <?
?>
   
2' <?=表示する文字列?> <?
print 表示する文字列;
?>
の短縮形。
 
3 <script language="php">
</script>
   
4 <%
%>
   

 

1.1.2記述場所

1.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>php1</title>
</head>
<body>
<?php
    $nanika="PHP";
    print "<h1>Hello!</h1>";
    print "<br><br>";
    print "<p>".$nanika."は楽しいですか?</p>";
?>
</body>
</html>

2.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>php1</title>
</head>
<body>
<?php
    $nanika="PHP";
    print "<h1>Hello!</h1>";
?>
<br><br>
<?php
    print "<p>".$nanika."は楽しいですね?</p>";
?>
</body>
</html>

3.

<?php
    $nanika="PHP";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>php1</title>
</head>
<body>
<?php
    if($nanika=="PHP"){
?>
<h1>Hello!</h1>
<br><br>
<p>PHPは楽しいですか?</p>
<?php
    }else{
?>
<h1>Hello!</h1>
<br><br>
<?php
        print "<p>".$nanika."は楽しいですよね?</p>";
    }
?>
</body>
</html>

4.


<?php
    $nanika="PHP";
    $m="<h1>Hello!</h1>";
    $m=$m."<br><br>";
    $m=$m."<p>".$nanika."は楽しいですか?</p>";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>php1</title>
</head>
<body>
<?php
    print $m;//bodyの中はプリント文のみ
?>
</body>
</html>

※print文とecho文は同じ機能です。どちらかひとつだけ覚えておけばOKです。

1.1.3 基本文法

1 変数
<?php
    $a=1+2;
    print $a;
?>
2 文字列
<?php
    $a=1+2;
    $b="変数aの値は";
    print $b;
    print "<br>";
    print $a;
?>
  文字列結合
<?php
    $a=1+2;
    $b="変数aの値は";
    print $b."<br>".$a;
?>
  文字列内の""
<?php
    print "<font color='#FF0000'>PHP</font>";
    $a=1+2;
    $b="変数aの値は";
    print $b."<br>".$a;
?>
  文字列内の改行
(HTMLソース表示の改行)
<?php
    print "<font color='#FF0000'>PHP</font>\n";
    $a=1+2;
    $b="変数aの値は";
    print $b."<br>\n".$a;
?>
3 条件分岐(1)
if文
<?php
    print "<font color='#FF0000'>PHP</font>\n";
    $a=1+2;
    $b="変数aの値は";
    print $b."<br>\n".$a;
    print "<br>\n";
    if ($a>0) {
        print "プラスです";
    }
?>
  条件分岐(2)
if else
<?php
    print "<font color='#FF0000'>PHP</font>\n";
    $a=1+2;
    $b="変数aの値は";
    print $b."<br>\n".$a;
    print "<br>\n";
    if ($a>0) {
        print "プラスです";
    }else {
        print "プラスじゃない";
    }
?>
  条件分岐(3)
if elseif else
<?php
    print "<font color='#FF0000'>PHP</font>\n";
    $a=1+2;
    $b="変数aの値は";
    print $b."<br>\n".$a;
    print "<br>\n";
    if ($a>0) {
        print "プラスです";
    }elseif ($a<0) {
        print "マイナスです";
    }else {
        print "ゼロです";
    }
?>
 

命令文 が1個の場合は
{}を使わなくてもよい。

<?php
    $a=1;
    if ($a>0) print "プラスです";
    else print "プラスじゃない";
?>
3

複数条件分岐
switch文

  • ( )の中の値により
    分岐する。
  • break文で処理終了。
<?php
    $a=1;
    switch($a){
        case 1:
            print "1です。";
            break;
        case 2:
            print "2です。";
            break;
        default:
            print "?です。";
            break;
    }
?>
4 ループ
for文
<?php
    for($x=1; $x<=10; $x++){
        print $x;
        print "<br>";
    }
?>
5

ループ
while文

  • ( )の中が真
    である限り繰り返す。
  • break文で処理終了。
<?php
    $a=1;
    while($a<=10){
        print $a."<br>";
        $a++;
    }
?>

 

演習1 変数$xに数値0〜9のいずれかが入っている。

などと表示せよ。

余裕のある人は、数値0〜9の乱数を発生させて変数$xに入れよ。

演習2 for文を使い、あんたが大将を下記のように7回表示せよ。

あんたが大将
あんたが大将
あんたが大将
あんたが大将
あんたが大将
あんたが大将
あんたが大将

 

今日やった成果を、自分のホームページにリンクしておくと、整理ができてよい。

 


簡単アクセスカウンタ

習うより慣れろで、下記を参考に、アクセスカウンタを作ってみよう。

設置作業

  1. C:\Program Files\Apache Group\Apache2\htdocs\自分の名前 の中にフォルダを作る。
    1. 名前はなんでもいいが例えばmycounterなど。
  2. 下記のphpファイルをそのフォルダに作成する。
    1. ファイル名は、例えばindex.phpとしておくといい。
    2. index.phpとしておけばhttp://コンピュータ名あるいはipアドレス/自分の名前/mycounter/とか
      http://localhost/自分の名前/mycounter/でアクセスできるので。
  3. 同じフォルダにcounter.txtを作成しておく。counter.txtの中身には0と書いておく。
<?php
//簡単アクセスカウンタ
$fp = fopen("counter.txt","r+");//ファイルを開く。読み書きモード
$ct = fgets($fp, 64);    //ファイルの中身を取得。64バイトまで
$ct++;                    //ファイルの中身(カウンタ)を1増加。
rewind($fp);                //ファイルポインタを先頭にもどす。
flock($fp, LOCK_EX);        //同時に他人から書き込まれないようにファイルをロックする。
fputs($fp, $ct);            //ファイルに書き込む。
fclose($fp);                //ファイルを閉じる。
?>
<html>
<head>
<meta httpequiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>わたしのホームページ</title>
</head>
<body>
<h1>わたしのホームページ</h1>
<h2>今日の出来事</h2>
<p>今日のPHPは良く分かった。(●^o^●)<br>
  こんどの休みに勉強してみようっと。φ(。。;)m</p>
<p> </p>
<p><b><?php print $ct; ?></b>人目の訪問者です。</p>
</body>
</html>

確認作業

  1. http://localhost/自分の名前/mycounter/にアクセスしてカウントアップすることを確認。
  2. 他の人に、http://ipアドレス/自分の名前/mycounter/へアクセスしてもらい、
    ちゃんとカウントアップしていることを確認。
     
  3. ブラウザの表示メニューのソースをクリックし、phpソースが処理されHTMLだけになっていることを確認。 

関数の意味

は次のどちらかで調べてみる。関数は、次の時間にやるのでそれまではこれで調べる。

  1. Googleで"php 関数名"を検索する。
  2. 日本PHPユーザ会>マニュアル>関数一覧で確認する。

 

自分のページに採用