PHPの練習ページ

PHPプログラムとは?

HTMLで書かれた通常のWebページの中に、PHP言語で書かれたプログラムが埋め込まれたもの。
HTMLで書かれた通常のWebページ
(通常、拡張子は「.html」)
PHPプログラム
(通常、拡張子は「.php」)
<HTML>
<HEAD>
 ヘッダー部
</HEAD>
<BODY>
 ボディ部
</BODY>
</HTML>
<HTML>

<?php

 PHPプログラム

?>

</HTML>

PHP動作の仕組み

  1. WebブラウザがWebサーバに「PHPプログラム」を含んだファイルを要求する。
  2. Webサーバは <?php?>で 囲まれた「PHPプログラム」を実行する。
  3. その結果をWebブラウザに送る。
  4. Webブラウザは受け取ったファイルを表示する。

ポイントは?

Webサーバ側でPHPプログラムが実行されるということ!
(クライアント側で実行されるJavaScriptと異なる点はここ)
サーバサイドプログラミングとも呼ばれる。

練習開始!

  1. PHPプログラム事始め「hello.php」
    <html><body>
    <?php
    
    echo "はじめてのPHPプログラム";
    ?> </body></html>
    1. TeraPad(スタート→TeraPadで起動)でプログラム入力。
    2. Zドライブ内に「PHP」フォルダ作成し、ファイル名「Hello.php」で保存する。
    3. FFFTPを起動し、サーバ「学内Web(exam)」に接続後、
      サーバ側(右側のウインドウ)は「public_html」に移動(ダブルクリック)
      クライアント側(左側のウインドウ)は「PHP」フォルダに移動。
    4. クライアント側「Hello.php」を選択し、サーバ側へファイル転送(アップロード)。
    5. ブラウザを開き、アドレス欄にこのPHPファイルを指定する。
      「http://exam/~学籍番号/Hello.php」

    実行すると
    「はじめてのPHPプログラム」
    と表示されるはずです。
    ・プログラムは半角で記述します。
    (ダブルクォーテーション「"」も半角です。)
    ただし、"と"で囲まれた文字列の部分だけには日本語(全角文字)が使えます。
    ・echo は"で囲まれた内容を表示します。
    ・1行の終わりにはセミコロン(;)をつけます。

  2. 繰り返し(for文を使って)
    <html><body>
    <?php
    for($i=1;$i<10;$i++){
    
    echo "はじめてのPHPプログラム<br>";
    }

    ?> </body></html>

    以下、プログラムはPHP部分のみ記述
  3. ダブルクォーテーション「"」の出力
    <?php
    
    echo "\"";

    ?>
  4. アクセスカウンタ(count.php)
    <?php
    
    $fp = fopen("count.txt","r");	
    // count.txtファイルを読み書きモード(r)でオープン
    // 以後、このファイルを$fpという名(ハンドル)でアクセスする
    
    $count = fgets($fp, 32);	
    // ファイル$fpから32バイトまたは最後まで読み込んで
    // その値を変数$countに代入する
    
    fclose($fp);		
    // ファイル$fpを閉じる
    
    $count++;			
    // $countを1増やす(カウントアップ)
    
    echo "あなたは";
    echo $count;
    echo "番目の訪問者です";
    
    $fp = fopen("count.txt","w");	
    // count.txtファイルを読み書きモード(w)でオープン
    // 以後、このファイルを$fpという名(ハンドル)でアクセスする
    
    fputs($fp, $count);		
    // ファイル$fpに変数$countの値を書き込む
    
    fclose($fp);		
    // ファイル$fpを閉じる
    
    ?>
    
    以上のプログラムをcount.phpとして保存する。

  5. 掲示板
    以下の3つのファイルを使います。

    keijiban.html

    ハンドル名やコメントを入力する画面です。
    
    
    <HTML><HEAD><TITLE>keijiban.html</TITLE>
    <BODY>
    <h3>掲示板</h3>
    
    <FORM action=keijiban.php method=post>
    ハンドル名:<input size=20 name="handle"><br>
    コメント: <INPUT size=50 name="comment">
    <input type=submit value="送信">
    </FORM>
    
    </BODY></HTML>
    

    keijiban.php

    keijiban.htmlから呼び出されるphpプログラム。
    <?php
    
    $kakikomi= $_POST['handle']." : ".$_POST['comment']."<br>";
    // 入力された書き込みを変数$kakikomiに代入
    
    $fp = fopen("keijiban.txt","a");
    // keijiban.txtファイルを追加書きモード(a)でオープン
    // 以後、このファイルを$fpという名(ハンドル)でアクセスする
    
    fputs($fp, $kakikomi);
    // ファイル$fpに変数$kakikomiの値を書き込む
    
    fclose($fp);
    // ファイル$fpを閉じる
    
    $fp = fopen("keijiban.txt","r");
    // keijiban.txtファイルを読み込みモード(r)でオープン
    // 以後、このファイルを$fpという名(ハンドル)でアクセスする
    
    while( $line = fgets($fp, 32) ){
      echo $line;
    }
    // ファイルの最後に来るまで(while)、$fpから1行ずつ読み込み
    // その行を変数$lineに代入し、その変数を表示する
    
    fclose($fp);
    // ファイル$fpを閉じる
    
    ?>
    

    keijiban.txt

    Zドライブに中身が空のファイルを作成し、サーバに転送し、属性を666にして書き込み可能にしておく。

新しい書き込みが上に表示されるように変更してみよう!
ヒント:一時的に作業ファイルを使う
作業手順:
  1. これまでの書き込みファイル(keijiban.txt)を一時的に別ファイル(keijiban.tmp)にコピーして保存する
    書式:copy("元ファイル","別ファイル");
    例:copy("keijiban.txt","keijiban.tmp");
  2. 新しいコメントをkeijiban.txtに書き込む
  3. これまでの書き込みを保存したファイル(keijiban.tmp)から1行ずつ読み込んで、 その内容をkeijiban.txtに追加する
    $fp1 = fopen("keijiban.tmp","r");
    $fp2 = fopen("keijiban.txt","a");
    while( $line = fgets($fp1, 32) ){
     fputs($fp2, $line);
    }
    fclose($fp1);
    fclose($fp2);
    

参考ページ


レッツPHP! チュートリアルがおすすめ!