PHPって何?
2007年08月23日01:00
PHP(ピーエーチピー)を学んでみようと思っています。
私自身もPHP初心者ですので、PHPって何?というところから、自分で理解しながら話を進めて行きたいと思います。
そして、なぜ私は突然PHPと言い出したのか。

<PHPって何?>
PHPはプログラム言語のひとつです。
かなり昔の話になりますが、その昔、BASICというプログラム言語がありました。
少しいじったりしたような記憶がおぼろげにありますが、そういうプログラム言語のひとつということです。
そう考えるとちょっと気が楽のような。

PHPの正式名称はHypertext Preprocessor(ハイパーテキスト プリプロセッサ)です。
どこを取ったら、PHPになるのかよくわかりませんが、もともとPersonal Home Page Toolsという名前で開発されたらしく、そこから由来しているのかも。

PHPの特徴
・オープンソースのプログラムで、利用は無料でできるようです。
・多くの人が開発できることで、さまざまな機能を追加できるライブラリが充実しているらしい。
・PHPはサーバーサイドスクリプトのプログラム言語です。



<サーバーサイドスクリプト>
とりあえず、「サーバーサイドスクリプト」がわからない。

サーバーサイドスクリプトとは、サーバーがめっちゃがんばるタイプのプログラミング言語らしいです。

図にしてみました。

サーバーサイドスクリプト

例えば、インターネット上にあるPHPファイルにアクセスしようとすると、PHPがインストールされたサーバーはPHPのページを表示するように要求され、がんばってページを表示します。
サーバーの方がめっちゃがんばるので、これをサーバーサイドスクリプトと言います。

サーバーサイドスクリプトは、サーバーがめっちゃがんばるため、サーバーに負荷がかかります。
どれくらい負荷がかかるかは、その作業内容やサーバーの性能によると思いますが。
また、サーバーで処理を行うため、作業内容はブラウザの環境に依存しないです。
(ただ、サーバーサイドスクリプトで生成されたHTMLなどの表示に関してはブラウザによる差が出ると思います。それはサーバーサイドスクリプトとは直接関係ない部分であると思いますけども。)

サーバーサイドスクリプトで有名なのは、CGIなのですが、CGI自体は言語というわけではなく、そういう仕組みのひとつの総称といいましょうか。CGIはPerlC言語とかのプログラム言語で書かれているらしいです。

PHPはこのサーバーサイドスクリプトのひとつですが、サーバーサイドスクリプトには他にも、
・マイクロソフトのASP(アフィリエイトのASPとは関係ありませんので念のため)
・AdobeシステムズのColdFusion Markup Language (CFML)
Python
Ruby
Java
などのプログラミング言語があるようです。


<クライアントサイドスクリプト>
サーバーサイドスクリプトに対し、クライアントサイドスクリプト、というのがあります。

図にしてみました。

クライアントサイドスクリプト

クライアントとは、「依頼人」とかいう意味ですが、私が自分のパソコンでブラウザを開き、あるHTMLのページのアドレスを開きたいと要求したとします。
こうなると私は要求をしたクライアント(依頼人)ということになるかと思いますが、その要求はサーバーへ行き、サーバーはHTMLのページを返してくれます。

この際、HTMLの中にJavaScriptがあると、サーバーはこれを華麗にスルー。
特に働くこともなく、「楽やわ〜」と余暇を満喫します。
困るのがクライアント(依頼人)側。ページが返って来たのは良いですが、JavaScriptはサーバーにスルーされています。クライアント側で何とか処理をしないといけません。
パソコンとブラウザがめっちゃがんばってこれを処理します。
クライアント側でがんばるので、これをクライアントサイドスクリプトと言います。

クライアントサイドスクリプトはお察しのとおり、サーバーには負荷はかかりません。
しかし、ブラウザの対応状況によっては表示がおかしくなったり、スクリプトをオフにする設定にしていれば表示されなかったりする可能性があります。

クライアントサイドスクリプトには、
JavaScript
・AdobeシステムズのActionScript
・マイクロソフトのVBScript
などがあります。


<サーバーサイド、クライアントサイド、両スクリプトの違い>

・サーバーサイドスクリプト
ホームページを利用するユーザーが入力した情報を取得し、データベースソフトと連携して情報を保存、さらに保存した情報を処理する、そういった一連の流れにサーバーサイドスクリプトは強いようです。

サーバーサイドスクリプトを使うと、例えばショッピングサイトで商品検索をして、それに関連するページを一覧表示するとか、入力した情報をデータベースと連携して管理するとか、そういうことができます。
掲示板やら、アクセス解析やら、カウンタやら、そういうことがサーバーサイドスクリプトで可能となるようです。

レンタルサーバーにインストールして使用するブログも記事を管理したり、自由に内容を抽出して表示したり、そういう部分がありますね。
Movable TypeはPerl
WordPressはPHP
で書かれています。
いずれもサーバーにインストールするタイプのブログソフトです。


・クライアントサイドスクリプト
主にブラウザでのユーザーの動きに関して、クライアントサイドスクリプトは強いようです。

マウスが載ったら画像を変えるとか、折りたたみメニューを展開するとか、そういうのがクライアントサイドスクリプトの得意とするところのようです。


・利用の仕方

どちらが優れているとかそういうものではなく、それぞれ得意なところをそれぞれに任せて、両者を組み合わせることでより高い表現力や利便性を引き出すのが良さそうです。



<動的なサイトが作りたい>

サイトを作って商品を紹介したりする場合、サイトの規模が大きくなればなるほど、管理は難しくなってきます。
商品の広告の貼り替えをしないと、広告の出演者の肖像権の期限が切れるとか、イラストの著作権の期限が切れるとか責任が発生したりする可能性もありえます。

そういう場合、静的ないわゆる普通のHTMLのページは、一つ一つのページを変更しないといけません。
ツールがあってもその手間は大変ではないかと思います。
規模が大きくなるにつれて、その管理はどんどん難しく、どんどん大変になります。
サイトに対して持てる責任がどんどん薄れて行く気がして、怖い気がします。

様々な要求に対して異なったページを返してくれる動的なサイトなら、そういう変更は簡単にできるような、イメージというか願望を持っています。

サーバーサイドスクリプトとデータベースを利用すれば、データベースの内容を変更することで、サイトの個別のページも一瞬にして変更できるような気がします。
CSVデータを利用して動的サイトを作れば、手軽にショッピングサイトができるのではないかと思います。
データベースを利用して連携すれば、さらに簡単かも。
さらに、XMLやRSSが利用できれば、情報内容の変更はXMLやRSSが自動でやってくれることになります。

楽をしたいというわけではないのですが、自分のサイトに自分の目が行き届かないところを、なるべく作りたくない、そのために動的なサイト作りを勉強したいと思っています。

XMLを用いて商品情報を利用するといえば、Amazonウェブサービス(AWS)が有名です。
以前、AWSを利用したいなあ、と思って本を読んだことがあったのですが、どうしてもわからないことがありました。

・1秒1回以上のリクエストをしない。
・エラーハンドリングの仕組みを持つ。


その本にはxslスタイルシートによるAWSの利用の仕方の説明がありましたが、どうしても1秒1回のリクエストをしないとか、エラーハンドリングの仕組みとか、そういうのがどこに書いてあるのか、わかりませんでした。
サーバーサイドスクリプトのプログラム言語でプログラムが組めるようになれば、これらの問題も解決できるようになる気がします。

動的サイトを作ることができるようになることで、自分自身、できることを増やしたい、と思っています。


<なぜPHPなのか?>

そこでなぜ、数あるプログラム言語の中でPHPなのか。

それは流行っているからです。
流行っているというのは大事だと思います。私のような素人にプログラミング言語の行く末などわかるわけがありません。
ですが、流行っていれば扱う人も増えるので、未来も開けやすくなるのではないかと思います。
流行っていれば参考にできる書籍も多くなります。私のような初心者にはかなりありがたいです。

いくつか本をぱらぱらと眺めてみたのですが、HTMLとの組み合わせが割りと簡単にできそうという点ではわかりやすそうな気がしました。
オープンソースで利用が無料なことも、もちろんうれしい要素のひとつです。

突き詰めて行って、マスタークラス(そういうのがあるのかわかりませんが)になれば、高度なプログラミングも可能になるらしく、初心者から上級者までどこまで行っても使えそうです。

どこまで私が成長するかは別問題ですが。

そういうわけで、PHP勉強してみたいと思います。


<PHPのプログラムを作っていくには>

PHPはメモ帳とかでも編集できるんです。
ですが、編集したものを「test.php」と拡張子をつけてブラウザで見ても、PHPは動作しません。
PHPが普通のパソコンにはインストールされていないからです。

普通のパソコン

とりあえず、自分のパソコンにもPHPをインストールしないと自分のパソコンで動作確認をしたりはできないようです。
PHPが動くにはApacheというソフトも必要なので、ついでにインストールしないといけません。
さらにゆくゆくはデータベースが必要なので、これもインストールしないといけないようです。

PHPインストール済みパソコン



当サイト・関連記事:
XAMPP(エグザンプ)行きま〜す
PHP初心者によるPHP入門


clip!PHP 

この記事へのコメント
うか
うか
2007年08月23日 01:21
「XAMPP」とググッてみると面白いツールが見つかると思いますよ♪
参考URL:http://www.uka-blog.com/web/web_tool/xampp_install.html

雄介
WEBプログラミングを覚えると、WEB上でできることが飛躍的に広がりますね。
最近APIを提供するASPも増えてますし、アフィリエイトをやる上でも、収益を得るチャンスが大きく増えるんじゃないでしょうか?

afiliateさんなら、PHPを利用して素晴らしいサイトを作りあげることと信じています。

って、プレッシャーかけたりして(笑)

>うかさん
「XAMPP」、ずっと「ざんぷ」と読むと思ってた・・・ひとつ賢くなりました。ありがとうございます。

あい
う・・・。
後半が頭に入らないーw

でも、なんだか楽しそうなので私も勉強しようかな。
afiliateさんのサイトで(汗)

私は流行ってる=使いやすい だと思っています。

スライム
スライム
2007年08月23日 12:02
はじめまして。いつも記事を楽しく読ませていただいております。

ちなみに、記事にある「ColdFusion」は
サーバーサイドスクリプトというとちょっと語弊がありますね。
正確には「アプリケーションサーバ」です。
PHPとか、Perlとかを動かすには、
文章中に「Apache」のことが書かれていますが、これと「ColdFusion」はほぼ同類です。

(投稿したら、文字の長さが多すぎると書かれたので書き込みを分割しますね)

スライム
スライム
2007年08月23日 12:03
私もColdFusionは使ったことがないので詳しいことは知りませんが、
ColdFusionは、ColdFusion Markup Language (CFML) という言語で書かれるようです。
http://ja.wikipedia.org/wiki/ColdFusion

PHPは使えるようになると、おっしゃるように楽なサイトの構築ができるかと思います。
それにPerlなどに比べると敷居が低く(htmlに直接組み込む形なので)
書籍を買わなくても、ネットで調べるだけで充分習得可能です。

それに、PHP(他の言語でも良いですが)を使えば、AWSでもそうですし、
電脳でも、他のウェブサービスでもXMLを取得した後、
XMLの内容をCSVに変換したり、DBに入れたりすることも簡単にできるようになるので
そういう意味でもHTMLやブログでは実現できないことができるので
利用価値がありますね。

鉄鍋のべる
鉄鍋のべる
2007年08月23日 22:24
5

afiliateさん、こんばんわ。
オラクルマスターはマントとか来ていて
5メートルくらいジャンプできると思っていたべるです。

先日はコメントに返信までいただき、ありがとうございます。
記事の書き方、参考にします。

話は変わって、PHPってそういうのだったのですね。
だから、javascriptだとブラウザやOSによって
動作がちょっと変わったりするんですね。

今日の記事もとても分かり易かったです。
ありがとうございました。
ではではまた伺います('Д')ゞ

携帯アフィリエイトサイトを無料オープンできます@エボきち
携帯アフィリエイトサイトを無料オープンできます@エボきち
2007年08月24日 18:16
はじめまして、エボきちと申します。。。

応援のポチ!

 PHP...無理。。。エボきち。

また来ます!

おのり@1日2分で約76,000円
おのり@1日2分で約76,000円
2007年08月25日 09:39
おはようございます。
おのり@1日2分で約76,000円です
人気ブログランキングからきました。

プログラミングには非常に興味があります。
いろいろなツールを出す人を見ていると
自分でもツールを作りたくなりますが・・・
何から始めてよいものか(汗)

いろいろと勉強させてください。
応援していきますね!

afiliate
どおも〜うかさま。

XAMPP、ググらせて頂き、記事も拝見させていただきました。
面白いツールを教えていただきありがとうございます。
とりあえず、次はこのツールに関してと、もろもろのソフトのインストールに関して記事を書こうかと思います。ありがとうございます。

読み方がわからなかったのですが、
エグザンプ→エグ○イル
ザマップ→ス○ップ

みたいだなー、とつまらないことを考えたりしました。
すみません。本当につまらなくて(笑)。

afiliate
どおも〜雄介さま。

そうですね、APIというのかまだ良くわかってないのですが、ウェブサービス的なものが増えていて、利用したいなーと最近良く思っていました。利用できるようになると良いなあ。

プ、プレッシャーには、な、慣れっこですよぉおお・・・・(すでに挙動不審w)

読み方、解決してよかった。
以前はMovable Typeを「モバブルタイプ」と心の中で読んでいた私。
ろくな読み方をしないところでした(笑)。

afiliate
どおも〜あいさま。

大丈夫ですよ。私も全般的に頭にはいっていません(笑)。
ただ、ブログやアフィリエイトもそうですが、わからないなりに触れて行くうちに自然とわかることが増えて行ったりして、徐々に使えるようになって行きます。
それと同じでPHPも触れて行くうちにだんだんとわかるようになって行く・・・といいなあ、と淡い期待を抱いております。早々に打ち砕かれそうな雰囲気もかなり濃厚に漂っていますが(笑)。

教えて差し上げられると良いんですが。当サイトを見て、ますます混乱させないようにがんばりたいと思います。

>私は流行ってる=使いやすい だと思っています。

ですね。PHPはこれが一番のポイントかもしれません。

afiliate
どおも〜スライムさま。はじめまして。コメントありがとうございます。いつも見ていただき、うれしいです。

さらに、ご指摘いただきまして、ありがとうございます。

しかし、ウィキペディアも拝見させていただきましたが、これは難しい。スライムさまの解説の方がわかりやすかったです。アプリケーションサーバ、なのですね。

ということは、CFMLをプログラミング言語のひとつとして列挙したらよろしいのでしょうか。
ちょっと難しすぎてよくわからない部分も多いのですが・・・(^^;

afiliate
スライムさま。

>XMLを取得した後、
>XMLの内容をCSVに変換したり
>DBに入れたりすることも簡単にできるようになるので

この辺のことを自由に触れるようになるとありがたいですね。理解力の乏しい私にとっては、道のりは、遠く険しそうそうですが・・・

>Perlなどに比べると敷居が低く

これに超期待しています(笑)。

これからもあほなことを記事にして堂々と書いちゃうと思いますが、間違っている時は指摘していただけると助かります。お暇なときにでもまた寄られてくださいね。

afiliate
どおも〜鉄鍋のべるさま。

5mジャンプするマントを着たオラクルマスター、それはぜひお会いしたいです(笑)。
私もPHPマスターになったな、と自分で感じたら、5mジャンプは無理ですが、マントでも羽織ってみましょうかね。

私自身も、調べながら、理解しながら記事を書いていますので、ひょっとしたらめちゃくちゃに間違っていることがあるかも知れません。すべてを鵜呑みにされず、おいしいところだけ、理解の手助けにされてくださいね。

afiliate
どおも〜携帯アフィリエイトサイトを無料オープンできます@エボきち さま。はじめまして。コメントありがとうございます。

私もいまだにPHP無理かも、とも思いますが、少しずつでもがんばれたらな、と思います。

携帯サイトも作れるらしいですよ。動的な携帯サイト作れたら良さそうな気がします。携帯サイトにも惹かれてるんですよね・・・。

応援ありがとうございます。お暇なときにでもまた寄られてください。

afiliate
おのり@1日2分で約76,000円さま。はじめまして。コメントありがとうございます。

ツール作れると良いですね。
そこまで行き着けるかわかりませんが、とりあえず自分で使えるレベルには、できたら到達したいですね。
私も何からはじめたらよいのやらわかりませんが、この記事で終わってしまわないように、次にステップアップしたいと思います(笑)。

応援ありがとうございます。お暇なときにでもまた寄られてください。


関西人ソラ【音楽大好き大学生のアフィリエイトで稼ぐブログ】
関西人ソラ【音楽大好き大学生のアフィリエイトで稼ぐブログ】
2007年08月26日 01:19
こんにちは。関西人ソラです。


すごい見やすくわかりやすい記事ですねー!
参考にさせていただきます

afiliate
関西人ソラさま。はじめまして。コメントありがとうございます。

見やすくてわかりやすいだなんて。そんな。照れます。
参考になれば幸いです。

ににっち
ご無沙汰しております^^
PHPはじめられましたかw
自分もPHP興味あって勉強したりしてるんですけど、
やりたいことを可能にするのに何を学べば良いかがまったくわからないんですよw

やはり遠回りにみえても基本から一歩一歩抑えていくしかないんでしょうか?

afiliateさんの御健闘をお祈りしておりますw

afiliate
どおも〜ににっちさま。

PHPはじめちゃいました。まだそんなに進んでいませんけども(笑)。
そうですね、PHPの本をこれでもかと買ってみたのですが、結局自分のやりたいことに必要な部分だけを集中的におぼえて使ってみるのが良さそうですよ。
とりあえずURLエンコード・デコードの関数があったので、これを作りたいと思って調べながらやったらなんとなくできました。
データベースやファイルとの連携が難しそうですけど、ぼちぼちやりたいと思います。入門部分の記事を近いうちに書きますね。一緒にがんばりましょー。