PHPの設定

PHPの設定を行うにはいくつか方法がありますが、その一つに設定用ファイルを編集する方法があります。
Apacheの設定を行うには、「httpd .conf」という設定用ファイルを編集しますが、PHPの設定を行うには、「php.ini」という設定用のファイルを編集します。

PHPのインストールを完了した場合、その状態ではphp.iniファ イルは存在していません。
php.iniの元になるファイルはありますので、それをコピーして、php.iniを作成します。

それでは、以降の手順に従ってphp.iniファイルを作成してください。

①エクスプローラを開いて、フォルダ「C:\php5」を開く。
②フォルダにあるphp.ini-productionというファイルをコピーして、ファイル名をphp.iniにする。
③その際に拡張子変更の確認画面が表示された場合は「はい」をクリック。

これでphp.iniファイルができました。
php.iniファイルを編集すると、PHPに関するさまざまな設定を行うことができます。
ただし、本書ではデフォルトの設定(規定の設定)を使うことにしますので、php.iniファイルの編集は行いません。

ソフトウェアを用意する

PHPでプログラムを作って動かすためには、用意しなければならないソフトウェアがいくつかあります。
図では、プログラムの作成作業を行うコンピュータ(開発用コンピュータ)とWebサーバ(実行用コンピュータ)が
別々のコンピュータ構成になっていますが、同ーのコンピュータでも動作可能です。

開発用コンピュータで用意するソフトウェアは、主に
①テキストエディタ、②FTPクライアント、③Webブラウザの3つです。

一方、Webサーバ(実行用コンピュータ)で用意するのは、
①PHP、②FTPサーバ、③Webサーバです。

日本語の文字化け対応方法

Webアプリケーションを作成している際に起きるトラブルとして多いのが「文字化け」です。
「データの入出力」「メール送信」などの箇所では特に文字化けが起こりやすく悩まされます。
文字化けが起こる原因としては、Webの構成要素であるWebブラウザ、Web
サーバ、PHP、データベースサーバなどの間で、入出力の文字コードが正しく設定されていないことがあげられます。
必ずしも文字コードを同じものに統一する必要があるわけではありません。
たとえば、PHPスクリプトが「UTF-8」で MySQL の内部コードが「EUC-JP」でも文字化けせずに動作させることはできます。
ただし、このような場合は双方の関係を理解した上で文字コードを適切に設定しないと文字化けが起こるので注意しなければなりません。

次に、文字化けの発生時に確認する箇所についてです。
例えば、PHP 、Apache 、MySQL を使 ったWeb アプリケーションでのデータの流れを示したものでは、①HTTPリクエスト ②PHPファイル内での文字列読み込み ③DBアクセス ④問い合せに対するレスポンス ⑤HTTPレスポンス の5箇所で文字化けが起こる可能性が高いです。

これらの文字化けの原因は、開発環境によってさまざまです。
問題を解決する上で重要なのは、自分の開発環境を把握しておくことです。開発環境を把握していることで、データの入出力の文字コードの関係のみを確認して、文字化けの原因にたどりつくことができます。
PHPでの文字コードが正しく設定されていることを確認するには phpinfo 関数を利用するのが最も簡単ですので、ぜひ試してみてください。

文字コード「UTF-8」

文字コードは「UTF-8」を選ぶ傾向になりつつあります。

Web アプリケーションでの文字コードを考えるときには、まずはどの文字コードを使用するのかを決定することが重要になります。
Webアプリケーションには必ずこの文字コードでなくてはならないという決まりごとはありません。
以前は、Linux 系サーバの普及率が高かったこともあり、サーバ内 (Webページやサ―バアプリケー ション) の文字コードは「EUC-JP」で構成することが一般的でした。
しかし現在は、PHPも国際化が進んでおり、多言語に対応した文字コードでプログラミングすることが必要になってきました。
言語の国際化とともに、作成するWebアプリケーションも多言語で表現できる文字コード、つまり「UTF-8」にするとよいと考えられています。

代表的なテキストエディタでの文字コードの設定方法は、Windowsの秀丸エディタでは、ファイル保存時のダイアログで、ファイルの種類は「すべてのファイル(*.*)」、文字コードは「UTF-8」、改行コードは「LF(ラインフィード)」を選んで保存して完了です。
一方、MacOSのCotEditorでは、ファイルのヘッダにあるツールバーで文字コードなどを指定できます。
改行コードは「LF」、エンコーディングは「Unicode(UTF-8)」を選択します。

LinuxでPHPの動作環境を構築する

Linuxには、Debian 、Red Hat、Turbo Linux などの「ディス卜リビュー ション」と呼ばれる種類があります。本書では「CentOS」 というディス卜リビュ ーションを使います。 CentOS5で PHP の動作環境を構築しましょう。本書では、 PHPを単体でインストールします。なお、インストールは必ず 「MySQL」 → 「Apache」 → 「PHP」の順番でインストールします。異なるバー ジョンを使用したり 、インストール先などを変更した場合などは、下記の方法で動作しない場合もあるので気をつけてください。

LinuxでMySQLをインストールする方法には、2通りあります。
ソースコードからコンバイルしてインストールする方法と、RPMパ ッケージを使用してインストールする方法です。RPMパッケージやyumコマ ンドからのインストールはLinuxの知識がなくてもコマンドひとつで簡単にインストールできることができます。しかし、最新バージョンに対応していません。ここでは、ソースコードからコンパイルしてインス卜ールする方法を紹介します。

MySQLは機能・性能の改善やパクフィックスを頻繁に行っています。本書では、執筆時点の安定バージョンである 5.0 .37 を採用します。なるべく安定バージョンの最新のMySQLをダウンロードしてインストールすることをお勧めします。最新のソースコードは MySQL のWebサイトから入手できます。
また、Linuxでは、パッケージやソースコードからApacheをインストールすることが可能です。

Linuxのユーザーについて

さきほどの説明でrootユーザーはスーパーユーザーであることを述べましたが、Windowsパソコンの
てっぺんにあるフォルダ(ドライブ)はC:\です。
同様にLinuxではフォルダのことをディレクトリとよび、てっぺんにあるディレクトリはルート
ディレクトリと呼ばれ / (スラッシュ)だけの名前無しのディレクトリの位置のことです。

少し歴史的な経緯を紹介しますと最初はUNIX(ユニックス)というOSが誕生し、UNIXの
ディレクトリ構成を参考にして作られたのがWindowsであると言われています。

最近のWindowsでは使用することはほどんど無い、コマンドだけで命令を実行するものに
MSDOSコマンドプロンプトというものがあります。

これも元はUNIXがコマンドのみで操作可能であったものを参考に作成されているという話も
あります。

最近のWindowsパソコンでは、コマンドのみで何かを行うということはありませんが、
Linuxはコマンドだけでいろいろなことを行うこと多いです。

もちろんWindowsのエクスプローラと同じように、Linuxにもマウスの操作だけで
簡単にディレクトリを移動したり、上にあがったり、下にさがったりするものも用意されています。

さきほど、Linuxのルートディレクトリは /  であると紹介しましたが、このルートディレクトリは
すべてのファイルとディレクトリのルート(根源)です。

Linuxのコマンドにrmというコマンドがあります。さらにコマンドはオプションが使えるものがあり
* (アスタリスク)というものがあり、意味は「すべてを」と言う意味です。

スーパーユーザーであるrootユーザーで / のディレクトリで以下のコマンドを実行したらどうなると思いますか?

# rm *

このコマンドを実行したらLinuxに存在する全てのものが消えます。

Linuxコマンドは、ほぼすべてのコマンドで命令を実行しても、何の警告も表示されません。

Windowsのように「○○してもよいですか?」などどダイアログは表示されません。

Linuxを覚える時には、Virtual BOXのようなVMの中にLinuxをインストールして
みて失敗しながら覚えるのがオススメです。

Windowsパソコンに何の影響も実害も与えないからです。

フォーム要素をスクリプトから作成する方法

 ラジオボタンや選択ボックスなどのフォーム要素は、選択オプションが増えてくると、 HTMLを構築するだけで一苦労です。

 選択オプションが5個程度と少数ならまだ事は簡単ですが、これが50、100…とどんどん増えたらどうなるでしょうか。コピー&ペース卜するにしても非常に骨の折れる作業になりますし、なにより致命的な間違いを生む原因ともなりえます。 このような場合、繰り返し構文を利用することによって、スマートにコードを記述することが可能になります。

 for文を例にして、例えば10から始めて、 10を一つの単位にして、 50まで増やします。カウンタ変数を10ずつ増加させる時には、増減式を「$i=10」のように記述します。「$i+=10」は、「$i=$i+10」の短縮形となります。

 配列や連想、配列で選択肢のデータを準備しておいて、 foreach命令で順番に埋め込むことも可能です。

 もしvalue値と表示するテキストが同一の場合には配列で、異なる場合には 「value値 =>テキスト」 の連想配列として、選択肢を用意しておきます。 foreach命令は、配列/連想配列の中身を順番に取り出すための命令です。今一度、確認をしておくとよいかと思います。

テキストボックス

自由なテキストを入力するためのボックスです。

HTML5以前は、汎用的なテキストボックスと、パスワードボックス、ファイル選択ボッ
クスが用意されている程度でしたが、HTML5で大幅に機能が拡充されました。<input>要
素のtype属性を変更することで、用途に応じて専用のテキストボックスを作成できます。
ブラウザによっては対応していないものもありますがへ対応していない場合は標準的なテ
キストボックスが表示されるだけで、特に害があるわけではありません。できるだけ目的に
応じたtype属性を指定しておくようにしましょう。

フォーム要素のHTML5対応が進んでいるOperaでの実行結果です。Android、iOSなどのスマー卜フォン環債では、tel、url、emailで、それぞれの入力に適したソフトウ工アキーボードが表示されているととがわかります。

PHP言語

HTMLを使ったWebを作るこ とは非常に一般的になりました。昔はHTMLのタグを自分で書く必要がありましたが、今ではCMSなどでWeb作成ソフトを使えば、ワープロ感覚でWebを作成できます。 ただ、お問い合わせフォームや掲示板など、アクセスするたびに内容が変化するようなものを作りたいという場合は、 HTMLだけでは作成できません。 Webの中に何らかのプログラムを組み込むことが必要になります。 これまでは、こういった Webを作るためには、 Perlを使うことが一般的でした。しかし、 Perlは元々は Web作成用 に作られたわけではないので、必ずしも最適な言語だとは言えま せん。 そのような中で、最近ではPHPという言語が徐々に注目さ れるようになってきました。 PHPは、 Web作成用に作られたプログラム言語です。文法が比較的シンプルで、 スクリプト実行時のエラーが分かりやすく表示されるなど、 Perlよりも使いやすい言語です。また、 PHPはデータベースソフトへの接続も得意で、 Webデータベースの作成にも非常に適した言語になっています。PHP でWeb ページを作成するには、その中でHTMLのタグを出力する必要があります。PHPはHTMLをマスターしたら次に挑戦したいプログラム言語と言えるでしょう。

switch文の使い方

switch文を使うと、このように選択肢が多い条件分岐の処理を組み立てることができます。if文のように「はい」または「いいえ」で答える質問に応じて分岐する処理ごとに長い条件を組み立てるのではなく、いくつかの選択肢のどれに当てはまるかをシンプルに記述できる点が特徴です。まずは、switch文のパターンを見て、構造のイメージをつかみましょう。

switch文のパターン

switch (変数1)

case 値1:

処理A

case 値2:

処理B

default:

処理X

}

switch文は、(      )に指定した変数(変数1) が値1のときは処理A、値2のときは処理Bを実行するというように処理を分岐します。選択肢の中から1つを選ぶイーメジです。選択肢はcaseというキーワードを使って{     }の中に作成します。たとえば、「case値1:」という選択肢は、「(変数1が)値1の場合は(処理Aを実行)」という意昧で動作します。選択肢が「case値3:」、「case値4:」と増えても、その条件を解読しづらくならないので、選択肢が多い場合はif文よりswitch文の方が適しています。

「default:」には、どれにも当てはまらなかったときの動作(デフォル卜の動作)を記述します。必須で与はありませんが、記述した方が安全です。これにより、変数1の値がどの選択肢にも当てはまらなかった場合は処理Xが実行されます。