teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

例を追加

2018/05/24 01:56

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -18,6 +18,28 @@
18
18
  「データベースを扱う場所」
19
19
  が明確にわかれて構成されています。
20
20
 
21
+ #
22
+ 身近な例で言いますとこのteratailのような質問サイトもPHPで作ることができます。
23
+ 当質問のURLは「https://teratail.com/questions/127672」ですが、
24
+ どのようにこの質問ページができあがっていると思いますか?
25
+
26
+ これはある意味CMSのような仕組みを利用しています。
27
+
28
+ まず、
29
+ 質問投稿ページで投稿された質問がデータベースに登録されます。
30
+
31
+ 登録される際に「127672」という質問IDが振られます(おそらく1から連番です)
32
+ で、questions/127672 というリクエストがサーバーに送信されると、
33
+ questionsと127672の組み合わせにより「取得する質問情報」が決まり、
34
+ 登録された質問情報を引き出した上で、このページが作られています。
35
+ ※.phpがなくてもPHPを呼び出す仕組みなどは端折っています
36
+
37
+ 質問投稿ページはquestions/inputで、質問ページとquestions部分は同じですが、
38
+ 2つ目のリクエストがinputの場合は質問投稿ページ それ以外(数値)であれば質問ページ
39
+ という形で送られてきたリクエスト内容によって表示するページ情報を切り分けているのだと思います。
40
+ (あと存在しない質問IDやコントロール内にないリクエストがあればエラーページへ)
41
+ #
42
+
21
43
  つまり、
22
44
  サーバー側で動作するPHPとクライアント側で動作するHTMLでは役割に明確な違いがあります。
23
45
  [php html 違い]などで検索して幾つかの記事を読み込んでみると良いです。

2

修正

2018/05/24 01:56

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -4,8 +4,9 @@
4
4
  phpでechoなりprintなり文字列を画面上に出力する機能があるのはご存知かとは思いますが、
5
5
  たまたまそれでhtmlを出力しているとそのようになるだけであって、作り方次第でどのようにもできます。
6
6
 
7
- xmlやjsonなどを出力すればAPIとしての機能も持たせられますし、
7
+ xmlやjsonなどを出力すればAPI([参考](https://www.sejuku.net/blog/7087))としての機能も持たせられますし、
8
8
  結果だけファイルに書き込む(または何も書き込まない)ようにすると何も画面出力を伴わないバッチ処理も作れます。
9
+ 中には「ファイルアップロード」や「ファイルダウンロード」のためだけに使われるようなこともあります。
9
10
 
10
11
  ちょっとした一例ですが、
11
12
  WordPressなどのCMS([参考](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0))はPHPで組まれているものも多くありますが、

1

修正

2018/05/23 21:59

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -4,12 +4,14 @@
4
4
  phpでechoなりprintなり文字列を画面上に出力する機能があるのはご存知かとは思いますが、
5
5
  たまたまそれでhtmlを出力しているとそのようになるだけであって、作り方次第でどのようにもできます。
6
6
 
7
- xmlやjsonなどを出力すればAPIとしての機能も持たせられますし、画面上に何も出力せず、
7
+ xmlやjsonなどを出力すればAPIとしての機能も持たせられますし、
8
8
  結果だけファイルに書き込む(または何も書き込まない)ようにすると何も画面出力を伴わないバッチ処理も作れます。
9
9
 
10
+ ちょっとした一例ですが、
10
- ちょっとした例ですが、WordPressなどのCMS([参考](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0))はPHPで組まれているものも多くありますが、
11
+ WordPressなどのCMS([参考](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0))はPHPで組まれているものも多くありますが、
11
12
  ああいったものは質問者さんが仰っている「htmlに組み込む言語」という使われ方はしていません。
12
- フレームワークについても(今主流かは置いておいて)良く使われるMVC構造([参考](https://ja.wikipedia.org/wiki/Model_View_Controller))は
13
+
14
+ フレームワーク([参考](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF))についても(今主流かは置いておいて)良く使われるMVC構造([参考](https://ja.wikipedia.org/wiki/Model_View_Controller))は
13
15
  「画面を表示する(正確には画面表示に必要なhtmlを組み込む場所)」
14
16
  「画面から情報を受け取って処理を行う場所」
15
17
  「データベースを扱う場所」