Category : [ Web関連 ]
Date : 2006年05月29日 01:22
Next :
Birthday Song,Requiemの出だしだけ (2006年05月29日 22:59)
Prev :
The Movie Clapper Board Generator (2006年05月28日 21:37)
phpで何が出来るのかが分からないのとそもそもphpが何なのかを理解してません(死(ふぁいすた氏のレスより)
近々自分のサイトで実演予定とか言ってみたものの、
やっぱもう少し掛かりそうな気がするので(爆)
こうやって自分のBlogに記事として起こしてレスってみることにします。
さて。そもそも「PHP」ってのはなんぞや、って話ですが、
これはまぁPerl同様な、Webページ生成用のスプリクト言語でございます。
実際の動作の流れを説明しますと、
例えば、hoge.phpと言うファイルがあったとします。
このような拡張子が「php」のファイルが読み込まれたとき、サーバは
「PHPファイルだよぉ」と認識して、PHPを実行するためのモジュールを呼び出します。
このPHPのモジュールが何をするかと言うと、
そのPHPファイルを先頭から読み込んで行きます。
読み込んでいって、「<?php」の記述が無い限りは何もせず、
そのままのHTMLを出力します。
しかし、ひとたび「<?php」の記述を見つけると「こっからは俺の出番だ・・・!」
と判断し、「?>」の記述が出てくるまでPHPとして処理を行う。
と言った感じ。(*1)
さて本題。
「PHPで何が出来るか」と言えば、
そりゃあまぁ一種のプログラミング言語な訳ですから何でも出来ます。(ぉ
・・・と、言った所で余りに漠然としすぎてなんだそりゃ、
って感じだろうし、そもそも「プログラミング言語」とまでなってくると
「色々と面倒じゃね・・・?」ってなってくると思います。
…でも待って!Wait Please!!(何
PHPは、プログラミング言語と言えども、
そんなに面倒では無い事をここに宣言しておきたい。
ここはヒトツ。具体例を用いてみましょうか。
ふぁいすた氏の言っていた
記事の再利用(インクルード)がMTの利点の一つだと思ってたんですが、
やはり個々の内容が詳細になってくると厳しいものがありますね。
今回は内容(MTEntryBody)、追記(MTEntryMore)、概要(MTEntryExcerpt)
まで使ったんですが、それでも足りなかったので…(笑)。
と言う件。これをPHPで実現しようとするとどうなるか。
上記の内容をCSV形式(カンマ区切りのフォーマット)のファイルとして作成します。
これをサイト上の適当な所に置いといて、PHPのスクリプトは以下みたいな
感じで良いと思います。
<?php
// CSVファイル読み込み
$lines = file( "hoge_table.csv" );// ループ
foreach($lines as $line_num => $line)
{
// 末尾の改行コードを消す
$line = str_replace("\n","",$line);
$line = str_replace("\r","",$line);
$hoge1 = strtok($line,",");
$hoge2 = strtok(",");
$hoge3 = strtok(",");
echo "$hoge1, $hoge2, $hoge3<BR>";
}
?>
たった20行程度。
ネ?簡単でしょ?w
まぁ上の例で、PHPによる実際の処理の書き方がいかに簡単か、
(多分)分かって貰えたかと思うのですが、
その次の段階として問題となってくるのは、"HTMLとしての出力"だと思われます。
・・・これは実際にファイルを見てもらったほうが早いかな・・・。
例えば、以下のファイルのような感じに書くことが出来ます。
>php_sample.txt
(※そのまま見ようとすると勝手にHTMLとして認識されてしまうので、
どっか適当にローカルに保存してみてください)
・・・分かるかな・・・。いや、分かんないかもしれないんすけど・・・。(何
注目すべきは、書き方の構文がMTと良く似ている所だと思うのですよ。
例えば以下のような構文
<input name="title" tabindex="1" value="<?php echo $title; ?>" size="100" />
MTであれば、例えば以下のような感じでしょうか。
<input name="title" tabindex="1" value="<$MTEntryTitle$>" size="100" />
そう。まさにMTそのまんま。(ぉ
つまり、今までMTのテンプレートタグになっていた部分が、
「<?php」や「?>」に置き換わっただけなのですよ。
と、長々と説明してきましたが、
はっきり言ってこんな説明でPHPの素晴らしさが理解できて貰えたかどうかは
はなはだ不明ではあります。(何)
とりあえず最後に付け加えておきますと、
別にワタクシの述べているのは、「MTなんてやめて全部PHPにしようぜ!」
と言う事ではありません。
ただ、ふぁいすた氏の件であったような状況に陥った場合は、
そこの部分だけ、このようにしてPHPを用いてみるのも良いのでは?と言うお話。
…まぁPHP最高ってことで。(何
*1 : 私言。ふぁいすた氏はPHPがサーバサイド言語だから負担が掛かりそう
等懸念しておりましたが、恐らく拡張子を.phpにしている時点で、
現状と負荷はさほど変化しないものと思われます。(何
Trackback URL : http://www.nwhite.info/mt/trbk_haruhi.xcg/3157