PHP言語を基礎から学ぶサイト

PHPについて初心者のWEBサイト管理人が情報をまとめていきます。HTMLとCSSをマスターしたらいよいよプログラム言語を一つ挑戦したいですよね。

http://blaineblogger.com/wp-content/uploads/2017/03/php.jpg
PHP言語
http://blaineblogger.com/wp-content/uploads/2017/03/2.jpg
PHP言語
http://blaineblogger.com/wp-content/uploads/2017/03/program.jpg
PHP言語

カテゴリー: Uncategorized


ヘッダ情報とは


では、ヘッダとはどうのような情報なのでしょうか。通常は目にすることが、できませんが、「ie HTTP Headers」(http://www .blunck. info/iehttpheaders/iehttpheaders.html)というヘッダ情報を視覚化するソフトウェアがあります。ただし、Windows のlntplorerでしか利用できません。インストールして、 HTTP ヘッダ情報を通じて、フラウザとサーバがどのような会話をしているか確認してみましょう。

インストールは、ダウンロードした「ieHTTPHeadersSetup.exe」 をダブルクリックして、ウィザードに従うだけです。なお、Internet Explorer7では、 Windows の再起動が必要になる場合があります。 インストールが完了したら、Internet Explorerのメニューから[表示]→[エクスプローラバー]→ [ieHTTPHeaders」と選択します。表示結果の黒字部分はサーバへの HTTP リクエス卜情報です。

リクエス卜情報には、使用している Webフラウザや OS (User-Agent)、接続先サーバーのホスト名、リファラ(リンク元情報)、 Cookieなどの情報も含まれています。 青字で表示されている部分はサーバからの HTTP レスポンス情報です。 レスポンス情 報には、iServer Jというヘ ッダ情報があります。 この情報は、「Apache /l . 3.37 (Unix)」 のように、使用しているWebサーバを示しています。なお、サーバの設定で表示しないようにしている場合もあります。

WebブラウザからApacheへURLリク工ストを行った時、Apache は拡張子の判別をします。たとえば、「http://localhost/question.php」へアクセスを行った場合、Apacheは拡張子が「.php」であることを判別して、PHPエンジンを使ってファイルを実行します。Windowsが、実行するアプリケーションを決めるのに、ファイルの拡張子を判別するのと同じです。ちなみに、「.html」など、「.php」 以外の拡張子を PHP スクリプ卜として解釈させることも可能です。拡張子を判別してアプリケーションを選択する設定は Apache の設定ファイルで行います。

PHPを使ってWebアプリケーション


Virtual BoxのインストールとISOイメージのダウンロードができたら、インストールを開始しましょう。
まずは、Virtual BoxでこれからLinuxをインストールする“仮想マシン”を作成します。

Virtual Boxを起動後、画面左上にある「新規」をクリックします。
「新規」をクリックすると「仮想マシンの作成」画面が開きます。
この画面で、まず「名前(任意の名前でOK)」を付け、これからインストールしたいOSの「タイプ」と
「バージョン」を選択します。CENT OSの場合、「タイプ」は「Linux」、「バージョン」は
「Red Hat(64-bit)」を選択します。

次に「メモリーサイズ」を選択してください。仮想マシンでどれだけメモリを使えるか、ということになるので、
大きくすれば仮想マシンの処理スピードが上がりますが、その分、本体側(ホストOS)の処理が遅くなる場合が
あります。

Linuxのデスクトップ環境は1024MBもあれば動きますが、2048MB以上のメモリがあえるパソコンでしたら、
2048MBぐらいにしておけばより快適に使用可能となります。

「ハードディスク」では、仮想マシン用のハードディスクを作るかどうかを設定します。これからLinuxを
インストールしたいので、「仮想ハードディスクを作成する」を選択してください。

ここまでの設定が完了したら、「作成」をクリックしてください。

「ファイルの場所」、「仮想ハードディスクを作成する場所」自動設定のままで構いません。

「作成」をクリックすると「仮想ハードディスクの作成」画面が開きますので仮想ハードディスクのサイズを設定
してください。10GBもあれば十分ですが、パソコンのハードディスクに余裕があれば64GB程度にしておきしょう。

「ハードディスクのファイルタイプ」は「VDI(Virtual Disk Image)」を使用すればよいです。

ここまで設定したら「作成」をクリックしてください。

クリックすると仮想マシンが作成されるので、「起動」をクリックして仮想マシンを起動してください。
次に 「起動ハードディスクを選択」画面が開くので、インストール用のISOイメージファイルを選択して
「起動」をクリックしてください。

すると CENT OS7(Linux)がインストールされます。


型キャスト構文について考える


PHPはデータ型に比較的寛容な言語だと言えます。データの中身からPHP自身が自動的に分析、判断し、その時点で適切な入れ物(型)をきちんと割り当ててくれるのが、 PHPという言語の持つ大変優れたところだと言えます。

 しかし、 だからといってすべての場面においてPHPの寛容さに頼っているわけにもいけません。

 具体例をあげると、カウンタ変数$iが数値、連想配列 $defs[‘age’]は文字列、といった状況の時にはPHPの持つその寛容さに頼ることはできません。「===」演算子は値そのも のだけでなく、データ型がきちんと一致しているのかも判定しますので、例えば、数字の10と文字列の’10’は違うものと認識されてしまうのです。このような場合では、型キャストという仕組みを使って、デー タ型を明示的に変換する必要があります。

どういうことかというと、「変数 $defs[‘age’]は整数 (int)として扱う」と PHP側に伝達しているのです。このため、変数 $iと$defs[‘age’] は数値同士の比較となります。 数値型キャストで指定できる主なデータ型には、 (int)以外にも、(double)、(string)、(bool)といったものがあります。

変数の寿命


「こんにちは、世界リやi100Jのようなデータの寿命は、その文の中だけであると言いました。もしもあとから同じデータにアクセスしたいという場合には、データを変数という入れ物に保存しておく必要があったわけです。

もっとも、変数の寿命も永遠というわけではありません。変数は、そのページを表示したところでなくなってしまうものです。

ページ1で準備された変数$xには、ページ2ではアクセスできません。ページ2それどころか、もう一度、ページ1を表示させようとしても、前にページ1を表示させたときの変数$xには、もうアクセスできないのです。いったんページを表示させたところで、変数$xは削除されているからです。2度目のアクセスで作成される変数$xは、名前は同じでも別の変数として扱われます。

セッションとは?

そこで登場するのが、セッションというしくみです。セッションとは、ざっくりと言ってしまうと、ページを跨って情報を保存するための入れ物です。ユーザーがアプリを利用している問、維持されます。

ページ1でセッ卜したセッション情報は、ページ1を表示したあとも維持され、ページ2でもアクセスできます。例えばi実習のサンプルのように、ウィザード形式の入力フォームではウィザードが完了するまでデータを保存しなければいけませんかう、ポストデータをいちいちセッションに詰め替えているのです。

PHPの歴史


PHP はWebプログラム言語の1つですが、まずはその全体的な概要をみてみましょう。
PHPの生い立ちですが、PHPの最初のバージョンは、 1994年の秋に開発され ました。 1995年に入って一般に公開され、 Personal Home Page Toolsと呼ばれるよ うになりました。この頃のPHPは、ごく簡単なマクロだけを実行できる解析エンジンと、ゲストブックやアクセスカウンタ等のユーティリティから構成されていて、mSQL というデータベースソフトと連携する機能も組み込まれました。その後HTMLのフォームからデータを取り込む Form Interpreterの機能が追加されました。この頃から、 PHPでプログラミ ングをする人が急激に増え、いろいろな人がPHPに機能を追加していくようになり ました。  PHP のプログラムの解析エンジンは、新しく作り直されてPHP3へと進化し、このバージョンから PHP : Hypertext Preprocessorと呼ばれるようになりました。 PHP3 では、有志によって国際化も進められ、日本語処理も行えるようになりました。 そして、 2000 年には、最新バージョンのPHP4 がリリースされました。 PHP4では、解析エンジンとしてZendというものが使われるようになり、 PHP3 に比べ て高速になりました。 日本では日本語対応のこなれ具合から、 PHP3 の最終バージョンを国際化した PHP3.0.18 も多用されています。

任意に繰り返しを止められる「while 文」


繰り返す回数が一定でないループ処理はどう作る?

今月の日付をすべて表示したいときは、どうすれば良いでしょうか。すでに紹介した「for文」を使って1日から月末日までを表示するループ処理を作成すれば良いので、はないかとイメージしているかもしれませんが、繰り返す回数が定ではないので注意が必要です。

好きなタイミングで終了できる構文があれば便利

月末日は一定ではなく、「1日から30日までの0回)」のように繰り返す回数が明確ではありません。そこで、( )の中に「(5回繰り返し)」とループカウンタで回数を指定するのではなく、次のように、「月末日まで続ける」と記述できる構文があれば便利ではないでしょうか。

このように記述できれば便利

処理を繰り返す (月末固まで続ける) {

日付の表示

}

この方法であれば、1日、2日、3日・・・と日付が表示されていき、月末日が30日の月も、31日の月も、月末日になったところで柔軟にループを終了できるというイメージです。

変数の使い方


変数という“箱”には$(ドル記号)で始まる名前を付けます。その意味は、文字列や数値を「どの箱に入れたかJを識別するためです。名前の付け方のルールは次頁で説明しますが、「$message」のように、用途がわかる名前を付けておくと便利です。また、日本語で「$aisatu」のような名前を付けても構いませんが、英単語で命名するのが一般的です。変数にあいさつを格納する例は、次のようになります。

 

あいさつを変数に格納する

<?php

$message = “こんにちは!” ;

?>

変数と「こんにちは!」をつなぐ「=」は算数で使う等号(イコール)ではありません。これは、右辺の「こんにちは!」を$message’こ格納(代入)することを示す「代入演算子」という記号です。また、変数iこ格納する文字列は「”」または「’」で囲みます。

変数に値が格納できたら、次は、変数の中身を表示してみましょう。前に紹介したfecho “こんにちは円」というコードを思い出してください。この中の「”こんにちは”」を変数名($message)に置き換えるだけです。具体的には、次のようになります。

変数に格納したあいさつを表示する

<?php

$message = “こんにちは! ”;

echo $message;

echo $message;

echo $message;

?>


こんにちは!  こんにちは!  こんにちは!


「 echo “こんにちは!”;」を3回記述する場合と比べてメリットが感じられないかもしれませんが、それは、この例が簡単すぎるからです。作業が複雑になる前に、「何度も使う言葉は変数に格納する」という習慣を身に付けておきましょう。

値に書式を付けて文字列に変換する


数値を Web ブラウザに表示する際にprintf 関数を使用すれば、桁数を指定した り、上位の桁に 0を埋めるなど、書式を付けられました。これと似たような働きをす る関数として、 sprintf があります。 print 関数は、書式付けした結果を Web ブラウザに表示するのではなく、文字列 として返します。書き方は次のようになります。書式指定文字列の書き方は、 print関数と同じです。 print章式指定文字列,値1,[値 2・・・] ) たとえば、変数$val の値が100 のときに次の文を実行すると、変数$str には 100 の文字列が代入されます。

長い行を分割する


スクリプトを書いていると、行が非常に長くなることがあります。たとえば、 if 文 で複雑な条件を指定する場合、条件式が多くなり、行が長くなります。 そのような場合は 1行で書き切る必要はなく、 2行以上に分けて書いてもかまいません。スペースを入れられる位置であれば、改行することができます。 たとえば、
if
($point >= 20 && $point <= 50) のような if 文を 2行に分ける場合、
if
($point >= 20 && $point <= 50) のように書きます。

 

便利なprintf


関数による書き出しの方法を覚えておきましょう。長いタグの記述を書き出すときどんどん繋げていくとプログラムがわかりにくくなってしまいます。これに対してprintf 関数では、書き出す文字列の形式を先に指定して、 後で入れ込む実際の値を指定します。 printf 関数を使うと、記述が非常にわかりやすくなります。