メインページ > 工学 > 情報技術 > プログラミング > PHP

PHPは、汎用スクリプト言語ですが、CGI/FastCGIあるいはmod_phpを介してウェブサーバーで利用されることか多く、この本でも主にウェブサーバーでの利用を念頭に解説します。

目次編集

  1. PHP/開発環境
  2. PHP/開発環境/インストール
  3. PHP/確実に動作させるまで
    1. 参考: PHP/コマンドラインでの活用
  4. PHP入門
    1. PHP/入門/テキスト表示とコメント
    2. PHP/入門/変数と値
  5. PHP/HTMLフォームからのデータ受け取り
  6. PHP/ファイル入出力 (headerによるダウンロードもここ)
  7. PHP/配列
  8. PHP/データベースとの連動
  9. 制御構造
    1. PHP/条件分岐 (ログイン画面の作り方やクッキーもこの単元)
    2. PHP/繰り返し
  10. PHP/入門/関数とは
  11. PHP/入門/変数の種類 ※進捗0%
  12. PHP/クラス
この節は書きかけです。この節を編集してくれる方を心からお待ちしています。

前書き編集

PHPの動作は、Web上におけるPerlのそれとよく似ていますが、Perlと異なりHTMLの内部にスクリプトを記述し実行することができるので、動的なウェブサイトを作成する際に、より容易に用いることができます。また、MySQLなどのデータベースとの親和性も高く、これはMediaWikiなどのソフトウェアにも活かされています。 PHPは2022年6月現在、2つの主要なバージョン (PHP7.4以降とPHP8.0以降) が提供されています。

PHP6は破棄され、ありません。

Cの様な構文、手頃な速度、および手軽に利用できるのでPHPは多くのプログラマとデザイナに使われる様になりました。Perlと同様に初心者でも、非常に簡単に習得できるのも特徴です。

※ 未分類編集

※ ここには作成途中などで、どの単元に入れたらいいか分からない単元を書きます。単元が完成したら、目次中の適する単元に移動したり、あるいは既存の単元に適するものがなければ単元を新規作成してください。

JavaScriptとPHPの連携編集

PHP上でJavaScriptの命令を書き込む場合、たとえば下記のようになる。

基本編集

<?php
	print "
	    <script>
            alert('Hello World!');
        </script>
        ";
	
?>

これをそのまま、test.php などとしてwebサーバにアップロードして localhost/test.php などにアクセスすれば、ブラウザ上でアラート(これはJavaScriptの機能)が実行されて表示される。


documentwrite などを使うには、下記のようにします。print よりも echo を用いるほうが安全に成功します。

<?php
echo <<<EOM
	<script>
	document.write("asdf");
	</script> 
EOM;
?>

表示結果

asdf

画像や動画など編集

上述のような方法で、下記のように図形なども表示させることが可能です。(下記コード内部のJavaScript部分は、HTML/HTML5#簡単な動画の例 からの引用です。)

静止画のコード例
<?php
echo <<<EOM


	<!DOCTYPE html>
<html lang="ja">
<head>
    <title>簡単なページ</title>
</head>
<body>

  <canvas id="canvas" width="320" height="240">
  </canvas>

  <script>
    var canvas = document.querySelector("#canvas");
    var ctx    = canvas.getContext("2d");
    ctx.fillStyle = "rgb(0,0,200)";
    ctx.fillRect(100, 100, 200, 200);
  </script>

</body>
</html>
	
    
EOM;
?>

実行結果は、もし実行に成功すれば、webブラウザでのアクセス時に青い四角が表示されます。

アニメーションの表示は、PHP側で処理すると通信に負担が掛かってしまうので、JavaScript側で処理させましょう。(下記コード内部のJavaScript部分は、HTML/HTML5#簡単な動画の例 からの引用です。)

動画のコード例
<?php
echo <<<EOM
	
	<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>簡単なcanvasアニメ</title>
  </head>
  <body>
    <canvas id="canvas" width="600" height="500"></canvas>
    <script>
      var cvs = document.getElementById("canvas"); // canvas要素の作成
      var ctx = cvs.getContext("2d"); // コンテキストの取得 // なお、以降cvsは使わない

      var count = 0; // 時間を数えるためのカウンター


      var dummy = function draw() { // var でメモリなど確保しないと後工程が上手く行かない。
        /* 背景色 */
        ctx.clearRect(0,0,600,500); // clearRect プロパティにて範囲指定で消せる
  
        /* 描画オブジェクト */
        ctx.fillStyle="#00F";// 青い四角をこれから動かす  
        ctx.fillRect(50 + count,30, 40, 40); // fillRectで四角を描画できる
  
        if(count < 300){
          count++; // 単なるインクリメント
        } // if count の終わり
        
        // 追加
        if(count > 150){
          clearInterval(kakuho);
        } // if count の終わり
        // 上記を追加
        
      } // function の終わり

      // 下記コードが追加された
      var kakuho = setInterval(dummy,10); // setInterval の終わり // var で確保しないと clear で止まらない場合あり
      
    </script>
  </body>
</html>

	
EOM;
?>

実行結果は、もし実行に成功すれば、webブラウザでのアクセス時に青い四角のアニメーション(始点の左から、右にむかってアニメーションします)が表示されます。