fc2ブログ

PREV | PAGE-SELECT | NEXT

PHPしか使わない理由って何さと聞かれるのでサイト構成サンプル作りました。

一体なぜ、PHPを作る人がhtmlをあんまり使わないのかという問われます。

SEO的にダメだろうとか言われますが、拡張子がPHPなだけで別にSEO効果が極端に下がるなんてことも今のところありません。

私はPHPでサイトを作ってしまう理由はあらゆる事が楽だからです。
面倒なことをなるべく減らそうということから使っています。

そもそもSmartyを使えるサーバーにはこんなのあんまり必要ありませんが・・・。

今回はどう楽になっているのかについて、サンプルを作りましたので、私のようなヘボプログラマのものでよければ参考にしてみてください。


サイト構成


index.php
(folder)css ---style.css
(folder)lb ---c.php

サンプルダウンロード

ようするに、どれだけページを量産しても、各ページでいじる部分が殆どない。
せいぜいコンテンツ内容くらいなサイトというのは多いわけでして、そういう場合はこういう感じでつくってしまう。

あとあとヘッダーメニューが増えても、c.phpをいじりさえすればいくらでも変更できますし、ましてサイドメニューなんかも変わる可能性が高いので、保守性と作成スピードを上げる為にわざわざこんな事をしています。

最近では
<link rel="stylesheet" href="./css/style.css" type="text/css" />
と、書くのも面倒で
CSS($dir."css/style.css");と、ファイル名を書くだけで呼び出すようにしています。

受注価格にもよりますが、ページごとにIDを設定して、IDを参照してサイドメニューを変えたり、ヘッダー部分を変えたりといったこともc.phpに色々書いておけば、各ページからいくらでも呼び出しが簡単にできるので、結構便利ですよ。

尚、今回サンプルに使用したCSSはCSSEZというWEBアプリを使って作ったものです。

ソース


c.php

<?php
//設定箇所--------------------------
$title="大きなタイトル";
$url="http://phpnet.blog91.fc2.com/";//絶対パス
//----------------------------------

//meta情報です
function Meta( $ul , $cs ) {
print <<< CAL
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=$ul" />
<meta http-equiv="Content-Style-Type" content="text/css" />
CAL;
}

//CSSをよびだします
function CSS($cs){
print "<link rel="stylesheet" href="".$cs."" type="text/css" />";
}

//JavaScriptを呼び出すときに使ったりします
function JavaS(){
//JavaScriptを読み込むようであれば書き込む
}

//ページタイトルを付けます
function Title( $title ) {
print "<title>".$title2."</title></head><body>";
print "<div id="wrapper">";//サイトを包括するものがあれば
}

//ヘッダーの部分
function Hd( $page) {
print <<< CAL
<div id="header">
<h1 id="title"><a href="$page">ヘッダータイトル</a></h1>
<div id="description">サイトの概要またはサブタイトル</div>
</div>
CAL;
}



//メニューカスタマイズ用
function Menu($page){
print '<div id="navigation"><ul>';
print '<li><a href="'.$page.'test1.php" class="tabs" ><span>メニュー1</span></a></li>';
print '<li><a href="'.$page.'test2.php" class="tabs" ><span>メニュー2</span></a></li>';
print '</ul></div>';
}

//サイドバー1
function Side1($page){
print '<div id="firstSide" class="sidebar">
<h4>サイドバータイトル</h4><ul>';
print '<li><a href="'.$page.'test3.php" class="lists">リスト1</a></li>';
print '<li><a href="'.$page.'test4.php" class="lists">リスト2</a></li>';
print '<li><a href="'.$page.'test5.php" class="lists">リスト3</a></li>';
print '</ul></div> ';
}

//サイドバー2
function Side2($page){
print '<div id="secondSide" class="sidebar">
<h4>サイドバータイトル</h4><ul>';
print '<li><a href="'.$page.'side1.php" class="lists">リスト1</a></li>';
print '<li><a href="'.$page.'side2.php" class="lists">リスト2</a></li>';
print '<li><a href="'.$page.'" class="lists">リスト3</a></li>';
print '</ul></div> ';
}

//フッター
function Foot(){
print <<< CAL
<div id="footer"> Base template by <a href="http://jp.cssez.com/">CSSEZ.com</a>.. </div>
</div>
</body>
</html>
CAL;
}

?>


index.php

<?php
header("Content-Type:text/html;charset=UTF-8");
$dir="./";
include($dir."lb/c.php");
Meta("utf-8",$dir.$css);
JavaS();//JavaScriptを呼び出す場合
CSS($dir."css/style.css");
Title($title."タイトルです");

//ここからbody

//ヘッダー部分
Hd($url);

//ヘッダーメニュー
Menu($url);

//サイドメニュー1
Side1($url);

//サイドメニュー2
Side2($url);
?>
<!-- コンテンツ開始 -->
<div id="contents">
<h2 class="contents_title"><a href="#">コンテンツタイトル</a></h2>
<div class="contents_body">
<p>ここにページのメインコンテンツを記述します。</p>
<h3>小見出し</h3>
<p>コンテンツ続き</p>
</div>
</div>
<!-- コンテンツ終了-->
<?php
//フッター
Foot();
?>



スポンサードリンク

| 基本 | comments:12 | trackbacks:0 | TOP↑

完全な理解はできないけど、たしかに楽そう。
PHPのよさをまた一つ発見。

| 疾風 | 2007/10/24 18:36 | URL | ≫ EDIT

これ、いいですね。
イタダキマス。

| none | 2007/10/24 18:52 | URL | ≫ EDIT

こんな使い方してたんですね。
たしかにメンテナンス楽そう

| PHP坊主 | 2007/10/24 19:24 | URL | ≫ EDIT

yamadaさんへ。
このUTF-8の指定方法なら、エンコード変更するとき、いちいち編集しなきゃいけないですよ。

これならc.phpのほうにエンコードを書いておいたほうがいいのでは?
どうでしょ。

| ナッツ | 2007/10/25 00:30 | URL | ≫ EDIT

コメントありがとうございます。

>>utf-8の指定方法
いや、ほんと、どうみてもそのとおりですね(笑

見落としていたと言うか、やっぱり抜けてるんだなぁ私は。
貴重なご意見ありがとうございます。
公開してよかった。

| Yamada | 2007/10/25 00:45 | URL | ≫ EDIT

>そもそもSmartyを使えるサーバーにはこんなのあんまり必要ありませんが・・・。
逆に Smarty を使えないサーバーってあるのでしょうか?
コピーすれば普通に使えませんか?

| 名無しのPHP人 | 2007/10/25 17:08 | URL | ≫ EDIT

http://www.gadgety.net/shin/tips/unix/php-tmpl.html
このあたりみてチャレンジしてみます。
何度か試したんですが動かないんですよねぇ。

勉強不足。反省します。

| Yamada | 2007/10/25 19:51 | URL | ≫ EDIT

URLなどでページ判別して、include文の1行だけでコンテンツ以外の情報がでるともっと便利そうですね。
HTML内にHTML以外のコード(もしくはPHP内にPHP以外のコード)を書くこと自体効率が悪い気もしますし。

| 通りすがりではなく | 2007/10/25 23:10 | URL | ≫ EDIT

今までアプリケーションを作るときぐらいしか
PHPを書く必要ないやと思ってたんですが、
こういう使い方をするととても便利ですね。
勉強になりました!

| watanabefg | 2007/10/26 11:29 | URL | ≫ EDIT

function Title( $title ) {
print "<title>".$title2."</title></head><body>";
print "<div id="wrapper">";//サイトを包括するものがあれば
}
ここ間違ってますよ。$title2じゃないです。

あとsmartyはよほど特殊な設定がされていない場合うごきますので。
参考まで
http://smarty.php.net/manual/ja/installing.smarty.basic.php

| とおりすがり | 2007/10/26 11:35 | URL | ≫ EDIT

>逆に Smarty を使えないサーバーってあるのでしょうか?
>コピーすれば普通に使えませんか?

Smarty自体がPHPスクリプトなので、コピーすれば使えます。
Smartyが使えない環境というのは、PHPのバージョンが低すぎるレンタルサーバーとかのことを指しているのかもしれません。(4.0.6以下なんてあまり見かけませんが…

| ryster | 2007/10/26 16:57 | URL | ≫ EDIT

ありがたいなぁ。
コメントありがとうございます。

あと$title2は間違いですね。
時間があいたら修正します。

ドリームウィーバーに依存するならinclude文はかなり便利ですよね。
私の場合、ファイルが増えていくよりも、一つのファイルで管理するタイプなので、この方法に行き着いたわけです。

昔は指摘受けるのが恥とか思っていたわけですが、最近では仕事に追われ、PHPのスキルアップが明らかに停止していると感じましたので、これからも色々公開していきたいと思います。

どうかご指導のほうよろしくお願いします。

| Yamada | 2007/10/26 19:45 | URL | ≫ EDIT















非公開コメント

http://phpnet.blog91.fc2.com/tb.php/15-fb7eabed

PREV | PAGE-SELECT | NEXT