Author: admin

はじめてのPHP

PHPとはプログラミング言語のひとつです。 プログラミング言語?何やら冒頭からいきなり難解な用語がでてきましたが心配ありません。 簡単に言ってしまいますと、コンピュータに何かを実行してもらうためにはプログラムというものを書いて 実行しないとコンピュータは何もしません。 さらにコンピュータが理解できるのは0と1だけです。0とは電気で言うとOFFの状態、1はONの状態です。 ですので、コンピュータに何かを実行してもらうためには0110101のように0と1のように実行内容を 書き込んだものをコンピュータが読み取りることにより初めて実行されます。 かなり昔には、0と1を書いてコンピュータに実行させていた時代もありましたが、これでは人間が1と0を1文字も 間違えなく書くことが大変困難です。では現代ではコンピュータは0と1以外を理解できるようになったのでしょうか? いいえ。今も昔もコンピュータは0と1しかわかりません。 そこで登場したのがプログラミング言語です。言語というと難解なイメージがありますが、簡単に言うと、「0と1だけ 書くというように人間にとってわかりにくいのではなく、何とか人間が読んだり、書いたりできる言葉のようなもの」です。 時代の移り変わりにより、新しくいろいろな種類のプログラミング言語が登場しました。現在ではインターネットが ありますが、インターネットが登場する前からコンピュータはありました。その時代、時代で、0と1だけを書くよりは 人間が読んでわかる、「コンピュータと人間の中立ちをするもの」であるプログラミング言語が登場しました。 そんな時代の流れの中でインターネットが登場し、インターネットを利用したプログラムを実行させるために使いやすい 言語がいくつも登場しました、そんな中の一つの言語がPHPです。

パターン検索の結果を部分的に置換する

パターンで検索された結果を部分に分けて、それを置換後に残すこともできます。例をあげると「123-4567Jのような7桁の番号から、ハイフン(-)を取り除くことを考えてみましょう。このような場合、「3桁の数字の後にハイフンが続き、その後に4桁の数字が続く」というパターンを検索して、f3桁の数字」と「4桁の数字」は残し、ハイフンを削除する(空文字列に置換する)とうまくいきます。パターンを部分に分けるには、ereg関数の場合と同様に括弧を使用します。また、置換する文字列を指定する際には、「¥¥1」「¥¥2」などの記号を使用すると、パターン内の各部分をそのまま残すことができます。最初に括弧で囲んだ部位が「¥¥1」に対応し、その次に括弧で囲んだ部位が「¥¥2」に・・・というように対応します。たとえば、i$newstr=ereg_replace(“([0・9]{3))・([0・9]{4))ヘ”¥¥1¥¥2″,$str);という文を実行したときのことを考えてみましょう。最初に、変数$strの文字列の中から、「3桁の数字」「ハイフン」「4桁の数字」と続くパターンが検索されます。置換する文字列の「¥¥1」は、パターンの中で最初に括弧で囲んだ「3桁の数字」の部位に対応します。そして、「¥¥2」は次に括弧で囲んだ「4桁の数字」に対応します。したがって「¥¥1¥¥2」は、見つかった文字列の中から「3桁の数字」と「4桁の数字」を取り出したものを表します。つまり、この文を実行すると、$strの文字列の中に「123-4567」のような番号があった場合、そこからハイフンが取り除かれた文字列が返され、それが$newstrに代入されることになるのです。

サンプルコードの大まかな流れ

サンプルコードも、だんだんと長くなってきました。腰も引けてしまうかもしれませんが、同じようなチェックの繰り返しがほとんどで、しくみ自体は大したものではありません。コード全体のルールとして、以下の点だけを理解したうえで、個々のコードを見ていくことにしましょう。 ます、それぞれのチ工ツクで発生した工ラーメッセージを保存するための配列$errorsを用意します。空の配列は、array関数に引数を渡さないことで作成できます。あとは 、それぞれのifブロックで入力値を判定して、工ラーが検出された場合にはエラーメッセージを配列$errorsに追加します。配列の末尾に新しいデータを追加するには、空のブラケット([ ])で $愛数名[ ] = 値 ; のように表すのでしたね。 すべてのチ工ツクが終わったら、工ラーメッセージを表示します。エラーの有無は、配列$errorsの個数(count($errors))がOより大きいかどうかで判定しています。配列$errorsの内容は改行(<br/>)区切りで連結したうえで、die関数で表示します。die関数は指定された文字列を表示したあと、スクリフトを強制的に終了します。

条件式と True/False の値

if 文は条件が満たされているかどうかで処理を分けるものですが、より正確には 「条件として与える式が True/ Falseのどちらの値を持っているか」で処理 を分けるものです。 条件式に使用する記号を比較演算子と呼びますが、「演算」は計算をして値を 求めることです。つまり、比較演算子も Trueまたは False の値を返します。条件が満たされると True の値が返され、そうでなければFalse が返されます。 if では、 () の中に比較演算子を使用した式を入れることがよくあり ます。しかし実際には、 True または False の値を返す式であれば、何でも入れられ ます。 たとえば、変数$a にTrue または False の値が代入されているとしましょう。その 場合、変数$a の値がTrue かFalse かで、処理が分かれることになり ます。

「演算子」で言葉を連結する

文字列の中に計算結果を混ぜるには お店で購入する商品の合計金額を表示するには、どうすれば良いでしょうか。たとえば、300円の商品を8個購入して400円が割引された場合、「合計金額は2000円です」と表示されます。文字列を画面に表示する「echo」を使って「echo “合計金額は2000円です行”;」と記述するだけで済みそうですが、実際は、この「2000」は計算で求めるのが一般的でしょう。 変数と文字列をつなぐ仕組みがあれば便利 解決策を考えるため、作成したい処理を整理してみましょう。最後に表示したいのは「合計金額は2000円です」で、このr2000Jを計算で求めるので、「合計金額は」と「2000」と「円ですJをつなげる仕組みがあれば便利です。また、「300 x  8 - 400」のような計算(四則演算)も、全角の「X 」や「ー」という符号を使わずにプログラミングコードで表現する必要があるでしょう。 算術演算子とは? たし算やかけ算などの四則演算をプログラムコードで表現するときは「算術演算子Jという記号を使います。演算子とは、変数や文字列を組み合わせてコードを記述するときに使う記号で、算術演算子に分類される「+」や「*」をはじめ、多くの種類があります。たとえば、「3X 4」というかけ算は、乗算演算子「*」を使って「3* 4」と記述します。四則演算で使う演算子と、その使用例をまとめておきましょう。

書籍のぺージを見られるのはなぜ?

サーバとクライアントの関係を詳しく見ていきましょう。たとえば、「PHP入門」という本のぺジを見ているときに、サーバーとクライアントの簡では、どのようなやり取りが行われているのでしょうか。 クライアントがサパに対して「『WPHP入門』のページを見せてください」とお願いすると、サーバーがクライアントに対して「どうぞ」と「PHP入門」のページを送り返してくれるという仕組みです。まるで「窓口」にお願いをしているような流れですが、この「窓口」の役割を果たすのが「Webサーバーて一」というコンビュータです。 「窓口にお願いする」というと、「そんなお願いをしたつもりはなしりというのが実感でしょうが、インターネットの世界では、裏で行われている複雑な処理をまったく意識せずに、単純な操作のみで書籍購入などができるようになっているのです。そのために重要な役割を果たしているのがWebサーバーと、私達がいつも使っているブラウザというわけです。

foreach 文を使用した例

foreachという文が追加されています。これを使用すると、 reset/ each 関数よりも多少シンプルに文を書くことができます。 連想配列の各要素の値だけをリストアップしたい場合は、 foreach 文を書きます。この場合、繰り返しの 1回ごとに、連想配列の各要素の値が変教 に代入されていきます。たとえば、 foreach ($fruits as $value) とすると、連想配列 $fruits の各要素の値が$value に、順に代入されていきます。 各要素のキーと値の両方をリストアップしたい場合は、 foreach 文を書きます。たとえば、 foreach ($fruits as $key => $value) とすると、連想配列の各要素のキーと値が、それぞれ$key と$value に、順に代入さ れます。 reset/ each 関数を使用して連想配列の要素をリストアップする例を挙 げましたが、これを、 foreach 文を使用してスクリプトの部分を書き換え、 foreach 文で連想配列内の要素をリストアップします。

if 文のネスト

if 文にある条件判断の流れの中で、更に条件 判断を行って処理を分けることもできます。この場合、 if やelse などの {と} の間に、更 にif 文を入れます。このようなことをネスト  (日本語では入れ子) と呼ぴます。 たとえば、大人/子供と曜日によって、 1ゲームの料金が変わるゲ ームがあるとします。このゲームを行ったときの料金を求めるスクリプトを作成してみましょう。 大人/子供の情報は変数$gen に入っていて、曜日は変数$wday に入っていると します。この場合、スクリプトを作成すれば、料金を求められ ます。変数$gen の値を調べて、子供か大人かで処理を分けています。そして、それぞれの処理の中で、再度if 文を使用して変数$wday の値を調 べ、それに応じて変数$charge に料金を求めています。 なお、 if 文をネストさせる場合、内側の if 文は外側よりもインデントを探くして、 内側/外側の区別がつくように文を書くことをお勧めします。

条件を組み合わせる

1つひとつの条件を順に判断するだけでなく、同時に複数の条件を判断して処理 をするかどうかを決めることもあります。そのようなときには &&や ll とい った演算子を使用します。2 つの条件が同時に満たされた場合に処理をする たとえば、「日曜日の午前中だけ特定のコンテンツを表示する」ということを考え て見ましょう。この場合、表示するかどうかは、曜日が日曜日と時間帯が午前中という 2つの条件で決めることになります。 2つの条件が同時に満たされている かどうかを調べるには、 &&という演算子を使用します。&&演算子は elseif の中でも使用できます。

スクリプトとは

Webページの正体は、 HTMLという規則に従って記述されたテキストファイルです。テキストフ ァイルとは「文字だけでできているファイル」でWebページを構成する HTMLファイルは 、すべて文字として読むととができるわけです。 これはメモ帳のようなエディタで1 行1行入力しょうが、ホームページビルダーのようなWebペ ージ作成ソフトで作成しようが、あるいはWebページを作成してくれる何かの言語 (たとえば PHP ) を使って作ろうが、受け取り側のクライアントではまったく区別することはありません。