C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: CGIとPHPとPerlの関係


(過去ログ 101 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■60729 / inTopicNo.1)  CGIとPHPとPerlの関係
  
□投稿者/ さがね (1回)-(2011/07/16(Sat) 11:50:44)

分類:[その他の言語] 

CGIとPHPとPerlってどういう関係ですか?
いまいち理解できなくて・・・
CGIもPHPもPerlの言語で書ける?
最初の宣言とかPHPタグは抜きにして、
CGIのソースをそのままPHPのソースとしても使えるんですか?

引用返信 編集キー/
■60730 / inTopicNo.2)  Re[1]: CGIとPHPとPerlの関係
□投稿者/ 逆運の覇者 (36回)-(2011/07/16(Sat) 12:10:48)
さがねさんがまったく理解できていないことがよくわかりました。
どうして「いまいち」という言葉でオブラートに包むのか私には理解できませんね。


CGIとは、Webサーバー上で動作するプログラムのこと。
ユーザーはWebブラウザでサイトにアクセスして利用するわけです。
CGIを使っているサイトは、2ちゃんねるなどの掲示板、オークションサイト、ショッピングサイトなど多種多様、
例はいくらでもありますね。


PHPとPerlはCGIを実現する言語の1つです。
なので、それらをCGIと同列に並べて比較したりすることがおかしいのです。
ただ、昔はPerlが良く使われていたのでその名残で
未だに CGI=Perl という言い方というか使い方をしているところはあるかもしれません。


PHPのソースをPerlで利用したり、PerlのソースをPHPで利用することはできません。
引用返信 編集キー/
■60742 / inTopicNo.3)  Re[2]: CGIとPHPとPerlの関係
□投稿者/ flied onion (1回)-(2011/07/16(Sat) 21:39:14)
同じ文字列が複数の意味で出現するから混乱するのでしょうね。

perlとphpはプログラミング言語の名称ですね。
CGI(Common Gateway Interface)は正確に言うならWebサーバとサーバー上で動く他のプログラムのやりとりの仕方を決めた技術仕様です。
「サーバー上で動く他のプログラム」とはphpとperlの実行モジュールと思ってください。

ところが、cgiとphpは拡張子としても使われます。
そのあたりで混乱してるんじゃないでしょうか。
どんな拡張子をどんな意味として捉えるかはWebサーバの設定次第なのでここは単なる目安というか暗黙の了解の範疇です。

あなたが書いた
.phpのプログラムは(内部的に)CGIの決まりに従ってWebサーバとやりとりをして実行され、CGIの決まりに従ってphpエンジンからの結果を返されたWebサーバがクライアントにHTMLを返却します。
.cgiのプログラムは(内部的に)CGIの決まりに従ってWebサーバとやりとりをして実行され、CGIの決まりに従ってperlエンジンからの結果を返されたWebサーバがクライアントにHTMLを返却します。

※ 前述のとおり「どんな拡張子をどんな意味として捉えるかはWebサーバの設定次第」なので
※ 拡張子cgiで内部的にphpを動作させることもできますので、.cgi=perlは正しくない
※ 実際 .cgiで c言語や他の言語のプログラムを動かすこともある


で、各質問ですが
> CGIもPHPもPerlの言語で書ける?
「.cgiも.phpもPerlの言語でかける?」
って意味であれば書けますね。拡張子phpの定義をPerlで動かすようにすればいいので
(まずやらないけど。phpで作ってたものをどうしてもPerlにリプレイスするけどURL変えたくないとかいうプロジェクトに参画したくないな。)


>最初の宣言とかPHPタグは抜きにして、
>CGIのソースをそのままPHPのソースとしても使えるんですか?
「.cgiのソースをそのままPHPのソースとしても使えるんですか?」
いじわるに回答するなら元のソースの言語がPHPで書かれていたのなら使えます。
.cgiがperl以外の言語で書かれている可能性は有りますので。

一般的には.cgiはPerlでしょうから、その場合は動きませんね。
変数に$付けるのだけは似てるけど文法違うから。


引用返信 編集キー/
■60756 / inTopicNo.4)  Re[3]: CGIとPHPとPerlの関係
□投稿者/ やんまー (60回)-(2011/07/17(Sun) 08:45:45)
笑い話で、

客 「友禅染と西陣織はどう違うのですか?」

店主「友禅は染め、西陣は織り、どっせ。」


というのがありました。

そもそも違うものを比較しているわけで、つまりこの回答としては、


CGI・・・インターフェース仕様

Perl、PHP ・・・ プログラミング言語


ということになるでしょうか。。。




引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -