質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

6回答

1889閲覧

PHPとHTMLの違う点

takato

総合スコア148

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/11/05 05:11

編集2015/11/05 10:29

今度ホームページを作りたいと考えているのですが、HTMLとPHPの大きな違いがわかりません。
調べてみた所同じ悩みを持った方がいるようなので調べてみたのですが一点気になる点がございまして、HTMLとPHPでそれぞれできることと出来ないことなどあるのでしょうか?
HTMLでもJavascript使えば結構こちらのわがままを聞いてくれるのでPHP学習しなくてもいいのかなって思いました。
皆様の体験談でも構いませんのでご意見よろしくおねがいします。

ーーーーーーーーーーーーーーーーーーーーーーーーーー

以下ベストアンサー後

今回様々な方にご返答いただきました。
今後同じ疑問を持ち検索してこのページに来た方向けにどういった点がわかりやすかったのかをコメントしておきましたので宜しければ参考にしてください。

また、質問に答えて頂いた皆様お時間いただき誠にありがとうございました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

ベストアンサー

ホームページ(以降ウェブサイト・ウェブページと表現します)を作成する時に、予備知識としてウェブサイトを公開(みんなが見れるように)する場所(サーバー※)の事を知る事が今回のHTMLとPHPの違いの理解に役立つと思います。

HTMLはいわずもがな、ウェブページを作成する言語で、HTMLタグなどを使い作成(構築)していきます。

ウェブページを公開するためには、サーバという24時間稼働しているコンピュータが必要で、そのコンピュータ上にウェブページを保存することで(ドメインの設定とかゴニョゴニョありますが・・・)PCなり、スマホなりで見ることができるようになります。

24時間稼働しているコンピュータはサーバと総称されており、サイトを訪問した人にHTML(テキストデータまたは文字列のまとまり)を受け渡す役割をします。

さて、ここで例えをつかいHTML・サーバの説明をします。

「24時間稼働するコンピュータ(サーバ)」はリアルでいう24時間営業のお店です。
「ウェブページ=HTML」はリアルでいうところの商品(例:雑誌 あくまでイメージです)です。

(条件)訪問客があったら、サーバは雑誌を訪問者に受け渡すこと、とする。

この例えと条件のもと文章を組み立ててみると

お店に、訪問客がきたので、お店は、雑誌を訪問客へ受け渡しました。
[読み替え]サーバに、訪問客が来たので、サーバは、HTMLを訪問客へ受け渡しました。

という風に読み替えられます。

ここから少しくわしく説明します。

例えば、http://takato.jp/というサーバがあったとします。
あなたは、info.htmlというウェブページを作成し、takato.jpサーバにデータをアップロードしました。

あなたは、Twitterでhttp://takato.jp/info.htmlというウェブページをツイートしました。
ツイートを見たあなたのフォロワーさんはhttp://takato.jp/info.htmlを訪問します。

すると、サーバは、http://takato.jp/info.htmlに訪問客がきたので、サーバはhttp://takato.jp/info.htmlに保存されているinfo.htmlという雑誌を訪問客へ受け渡しました。

こういった一連の行為をサーバはしています。

ここで、注目したいのが、info.htmlというウェブページです。
http://takato.jp/info.htmlというURLは「ウェブページtakato.jpにあるinfoという名前のHTMLを見せて下さい」という意味になります。infoという名前のHTMLというのがココではミソで、ファイル名を特定できるというのがHTMLということです。

つまり何が言いたいかというと、特定のページ(雑誌)をくださいとお店側に伝えると、お店はあなたに要求された通りの商品を受け渡してくれます。

HTMLとはそういうものです。これをウェブの世界では「静的なXXX」という表現をします。

方や、PHPというものは「サーバサイドの処理」という風に、私が喩えに出した「お店」を例に「サーバサイドの処理」は「お店側の処理」という表現に置き換えることができます。

これ以降はHTML:info.htmlを作成したのと同様にPHP:info.phpを作成したものとします。

では、お店側の処理とは何なのでしょうか。
リアルなお店を想像してみると、必ずお店には店員さんがいますよね。

お店側の処理という表現は、お店の店員さんが何かをしてくれること、と言い換えることができます。

となると、

PHPとは、お店の店員さんに何かを尋いたりして、店員さんが作業をした結果を受け取るという行為だといえます。

ちょっとPHPの説明を足早にしてしまったのですが、頭を整理すると↓

http://takato.jp/info.html」は「infoというHTMLを下さい」と言っていた事に対して

http://takato.jp/info.php?search=●●」は「●●というものを探しているんですが、店員さん(info.php)探してくれませんか」

ということになります。

説明も終盤になってきて少し専門的な話しをすると

PHPというものはサーバサイド(お店側)の(店員さん1人1人に対しての)処理方法を1つずつ指示するもの。MySQL(データベース)というものをお店の倉庫とかに見立てると、「訪問者の欲しいものがお店の倉庫にある場合は、倉庫から商品を取り出して、お客様へ提供する」などの手順をPHPという言語を使用してファイルを作成しておきます。

そうすることで、info.php(infoという名前の店員さん)はお客様のニーズに応じて、

http://takato.jp/info.php?search=peacematayoshinohibana
→ ピース又吉の火花を探して下さい とお客様に尋ねられたら、「火花」を探して提供する

だったり
http://takato.jp/info.php?search=dazaiosamu
→ 太宰治を探してください とお客様に尋ねられたら、「太宰治」を提供する

という風に、なにかしら商品をお客さまに尋ねられても柔軟に対応できるということです。

これを動的なウェブページと呼び、静的なウェブページ(HTML)と異なる点になります。

ウェブサーバでは、お客様が訪問してくれることをリクエストと呼び
HTMLとPHPをこのリクエストという表現をもって分類すると

HTMLはリクエストが来たら、予め作成しておいたHTMLファイルを閲覧者に返すもの。
PHPはリクエストが来たら、そのリクエストに応じたHTMLファイルをその場で作成し、閲覧者へ返すもの。

という分類(違い)になります。

※サーバーという表記は、「サーバ」というふうに伸ばし棒を付けずに表現することもあります。

投稿2015/11/05 07:13

編集2015/11/05 07:33
unakuwa

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/11/05 09:48

unakuwa様 初めまして 長い文でしたがとても見やすくわかりやすい内容でした。 長文で選んだわけでなく色んな例えを出していただいたので初心者に「質問に的確でわかりやすい」と判断しベストアンサーとさせて頂きます! ありがとうございました!!
unakuwa

2015/11/05 12:10

takatoさま 私も同じ悩みを持っていました。ヤフー知恵袋や教えてgooなどを読み漁ってもみましたがなかなか自分の知りたい答が無かったものです。 自分でウェブサーバを構築する技術と、運用するにあたって経験が積み上がった時やっと腑に落ちました。 説明が的確でない部分があるのですが、概要をがっちり押さえてはおりますので今後の技術獲得のお役立ちにしてくださいませ。 ベストアンサーを頂き、光栄ですっ!ありがとうございました。
guest

0

PHPは基本的にサーバーに処理をさせる言語です。
HTMLはブラウザ(Chrome,FireFox等)に処理をさせる言語です。

ご自身のPCのデスクトップにindex.htmlとindex.phpという2つのファイルがあるとします。
index.htmlをブラウザで開くと、ブラウザはこれをHTMLファイルとして処理します。
index.phpをブラウザで開くと、ブラウザはこれを「サーバーで色々と処理が行われた後の HTMLファイルのようなもの」として処理を行います。

takatoさんは、PHPの「処理結果をHTMLとして出力できる」という一面だけをご覧になって、
HTMLとPHPの違いがわからなくなってるんだと思います。

PHPはもっと複雑で、もっと便利で、使い方を間違えると大変なことも起っちゃう。そういう言語です。
PHPを扱うにはある程度HTMLの知識が必要になってくるので、
とりあえずHTMLから始めて見ることをおすすめします。

ちなみに、PHPは色々な処理を行う事ができるため、HTMLに比べサーバーへの負担が大きくなります。
ヤフージオシティーズをはじめ、無料でレンタルできるウェブサーバーでは、基本的にPHPを扱うことはできません。
ファイルをアップロードすることはできるかもしれませんが、それを閲覧することはできないと思います。

投稿2015/11/05 07:14

編集2015/11/05 07:30
mankan

総合スコア187

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/11/05 09:52

mankan様 初めまして。 mankan様の説明は私自身の立場で考えるだけでなく、今後のことも考えていただいた内容でしたのでmankan様がどんなかたかもわかるご返答でした。 今後もしPHPを使う機会があると思います。その時の教訓として学ばせて頂きます。 ありがとうございました。
guest

0

PHPはサーバ側で処理が実行されます。
そのため、あらかじめサーバに用意しておいたデータをサーバから出したり、ユーザからのデータをサーバに保存したり、サーバ側でしかできない処理が実行できます。

HTML+javascriptはブラウザ上でしか動かないので、サーバ側にデータを保存することは出来ません。
(javascriptがサーバのPHPにアクセスして保存するということは可能です)

例えば、ECサイトで商品を購入したい場合はサーバ側に注文データを保存して、店員の管理画面から発送処理をしたりしますが、これはサーバ側でデータを保存しないと出来ないことです。
店員のブラウザとお客さんのブラウザは別のものなので、サーバを介さないとデータのやり取りが出来ません。

という感じでイメージは掴めるでしょうか。

投稿2015/11/05 05:37

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/11/05 09:59

tanat様 初めまして。 一番初めに返答していただいてありがとうございます。 大まかにわかる内容でなんとなく掴めるといった感想です。 今後とも宜しくお願いします。
guest

0

私が仕事をするうえで、HTML、PHPどちらでコーディングするかの判断は、
データベースを使用する / 使用しない
でおおむね判断しています。

データベースを使用する必要がある場合は、HTML単体では不可能ですし、
静的ページの場合は、PHPでコーディングする必要性がありません。

投稿2015/11/05 06:16

KenjiObata

総合スコア440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/11/05 09:57

kenjiObata様 初めまして。 仕事面のことを踏まえた考えだと役立つ機会があるのでとてもたすかります。 Kenjiobata様の答えはシンプルでわかりやすかったです。 ありがとうございました。
guest

0

内容としては「PHPとJavaScriptの違い」という事なのかなと。

言わんとしてる事は、
こちらのホームページに書いてありました。
(後半は関係ない内容なので前半だけ 参考にしてみてください。)

ブラウザ(ユーザー側)だけで完結するサイトならば
HTML(+Javascript)で作ってしまえば良いでしょうし、
ユーザーとのデータのやり取りを想定しているようなサイトであれば
PHPもカジっておいて損はないですね。
いや、学習しないと解決できない場面もでてくると思います。

投稿2015/11/05 06:03

SteveG

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/11/05 07:14

SteveG様 初めまして。 とても分かりやすいです。 自分の解釈としてHTMLはオフラインゲームで手軽にできる。(Javascriptを使えば”一応”ゲームのデータをダウンロードできる) PHPはオンラインも対応しているゲームで他ユーザーとやり取りができる。 こんなイメージですがどうでしょうか?
SteveG

2015/11/05 07:33

こんにちは。 コメントしていただくなんて^^。 そうですね。ゲームでたとえられますね。 jsでマリオを作った事例とかもありますし、ROMゲームを再現できますから。 (完全オフラインというわけにはいかないとこもありますけども) そうですそうです。 やりとりできるというのがポイントになると思います。 静的や動的と難しく表現されますけど、 簡単にイメージすればあっていると思いますよ。
takato

2015/11/05 10:33

SteveG様 折角コメントいただいたのでできる限りご返答したいと考えております。 JSでマリオ作ったのは興味ありますね。 SteveG様の答えをベストアンサーにしようかと悩んだのですがすいません。 今後とも宜しくお願い致します。
guest

0

HTMLはwebページで表示させるためウェブデザイナーなどが作っていて、PHPはそのwebページを動的なものにするためにプログラマやエンジニアが作っているといった認識です。
例えばHTMLで作られたログインページがあったとして、ユーザーがログインする際に誰がどのパスワードでログインしたかわからないですよね?そこでPHPでこのパスワードを認識し、それぞれのマイページに移動したりアカウントがなければ登録ページに移動したりする処理を行える。といった感じでしょうか。

投稿2015/11/05 05:56

miyake

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/11/05 06:06

miyake様 初めまして。 そのご説明ですとJavaScriptで何とか誤魔化せそうなイメージなんですよね・・・ もしかしたら私の場合javascriptを含んだHTMLでイメージしているのかもしれません。 本来別物ですもね。 同じ疑問を持つ人が自分以外にもいるということは似た機能を持っている認識を持つ人が多いということだと思うんです。なので決定的違いとはなんぞやと思い質問させていただきました。
miyake

2015/11/05 06:35

そうですね。 確かにjavascriptでも誤魔化せちゃいますね... javascriptもphpも似たような感じではありますが、この2つの大きな違いはjavascriptはそれぞれのユーザーのブラウザで動くのに対してphpはサーバー上で動きます。 サーバ上で動かす事ができるので、OSが変わっても問題はありません。しかし、アクセスが集中してしまうとサーバー上で処理しきれなくなってしまうためそれぞれのブラウザで動かした方が処理しきれなくなってしまうということが起こりにくくなります。 この違いを意識すれば作るサービスや処理によって使用する言語を変えることができるのではないでしょうか。 言葉足らずですみません。。。
takato

2015/11/05 10:36

miyake様 調べたときにmiyake様と同じようなことを書かれている方がいたので今後経験を積んでいくうちにその壁にぶつかると思いますので教訓とさせていただきます。 コメント頂いて感謝しております。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問