WebプログラミングU

 目次へ 次へ

2015/4/1 久米

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は別のもの。
アルファベット、数字、_ で名前付ける。
先頭の文字は、アルファベットか _ 。
予約語は使えない。
同左 変数の先頭に$マークをつける。
大文字小文字は区別する。 
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
同左 型を意識する必要がない。
演算子 + - * / ・・・
文字列の結合は+ (プラス)
同左 同左
ただし文字列の結合は . (ピリオド)
条件分岐文 if for while 同左 同左
関数 function 関数名(引数){ } 同左 同左
オブジェクト命名法 DOM ターゲットパス $オブジェクト名->変数名
$オブジェクト名->関数名()
イベント記述法 タグに記述 onClick="" addEventListenerメソッドで記述 特になし

 

1.1PHPの基礎(1)

注)これから作るphpファイルは、
C:\xampp\htdocs\web2 の中にフォルダに
入れてゆくことになる。そのフォルダ名やファイル名は、半角英数にすること。

1.1.1 記述方法

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

  htmlの中に下記のタグで括る 説明 推奨
1 <?php
?>
 
  <?php
 
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>

phpの処理部分は
<html>タグの上に記述し

表示処理print文などは
bodyの中に記述

こうすると処理と表示を
分割でき 分かりやすい。

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

1.1.3 基本文法

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

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

<?php
    $a=1;
    $b="変数aの値は";
    $c="";
    if ($a>0) $c="プラスです";
    else $c="プラスじゃない";
?>
bodyの中で <?php print $b."<br />".$a."<br />".$c;
?>
3

複数条件分岐
switch文

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

ループ
while文

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

 

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

などと表示せよ。

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

演習2 for文を使い、表を作ってみよ。

やおや

  商品 価格
1 かぼちゃ 320
2 だいこん 200
3 キャベツ 480

 

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

 


簡単アクセスカウンタ

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

設置作業

  1. C:\xampp\htdocs\web2 の中にフォルダを作る。
    1. 名前はなんでもいいが例えばmycounterなど。
  2. 下記のphpファイルをそのフォルダに作成する。
    1. ファイル名は、例えばindex.phpとしておくといい。
    2. index.phpとしておけばhttp://コンピュータ名あるいはipアドレス/web2/mycounter/とか
      http://localhost/web2/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/web2/mycounter/にアクセスしてカウントアップすることを確認。
  2. 他の人に、http://ipアドレス/web2/mycounter/へアクセスしてもらい、
    ちゃんとカウントアップしていることを確認。
     
  3. ブラウザの表示メニューのソースをクリックし、phpソースが処理されHTMLだけになっていることを確認。 

関数の意味

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

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

 

自分のページに採用