ホームページ  >  記事  >  php教程  >  PHPでHTMLを生成するという考え方

PHPでHTMLを生成するという考え方

WBOY
WBOYオリジナル
2016-06-21 08:57:11913ブラウズ

現在、インターネット上の多くの Web サイトのニュース リリース システムでは、動的サーバー テクノロジを使用して静的 HTML を生成しています。第 1 に、サーバーの負荷を軽減できることです。 HTML 静的ページを生成するため、Web サイトが検索エンジンによって検索される可能性が高くなります。

著者の Web サイトは、かつて動的テクノロジである PHP を使用してニュース リリース システムを構築していましたが、その原理は、PHP のテクノロジを適用して HTML 静的ページを生成することでした。そのため、ここでは、PHP のテクノロジを適用して HTML 静的ページを生成しました。 , このアプローチの考え方について簡単にお話したいと思います。この記事は、PHP + MYSQL データベース操作、SQL ステートメント、Web デザインの基本的な知識を持っている友人に適しています。あなたがゼロから学習している友人の場合は、まずしっかりとした基礎を築いてください。ここで下を見る必要はありません。上記の条件を満たしている場合は、おめでとうございます。読み続けてください。ただし、実際に構築する前に以下の準備が必要です。

1.PHPのローカルデバッグ機能付き

WINDOWS XP オペレーティング システムでは、Huajun Software Park などのインターネットから PHP+MYSQL+APHCHE サーバー パッケージをダウンロードし、そこで検索するとダウンロードできると著者は推奨しています。ダウンロード後、デフォルトでインストールできます。これにより、PHP をローカルでテストできるようになり、手動構成での多くの手間が省けます。これは最初のステップにすぎません。

2. ニュースリリースシステムの機能を考える

ホームページのニュースリリースはバックグラウンドで更新されることが多く、バックグラウンド更新はデータの追加、編集、削除などの基本的な機能にすぎません。ここでは、Web デザイン ソフトウェアを使用して、必要なバックエンド インターフェイスを構築できます。もちろん、その機能の実装には PHP が使用されます。このステップでは、まずニュースリリースシステムに備えるべき機能を考えることをお勧めします。ここでは、PHP を使用してデータを追加、編集、削除する方法については繰り返しません。これに基づいて静的テクノロジを生成する方法に焦点を当てているからです。

3. PHP による HTML 生成の技術原則。

ははは。フェイはたくさん言いましたが、ついに話す時が来ました。実際、この原則は複雑ではありません。一般的に言えば、PHP のデータ構文を置き換える応用です。 OK、簡単な例について話して、それを段階的に分析してみましょう。あなたは賢いので、それを明確に理解できると思います。ここでは、その方法を詳しく説明します。

(1) MYSQL で新しいデータベースを作成し、database という名前を付けます (カスタマイズ可能)。新しいテーブルを作成し、news という名前を付けます (ニュースリリースなので、覚えやすく、わかりやすい名前を付けてください)カスタマイズ可能)、次に次のフィールド名を作成します:
id (自動インクリメント、これはキー、タイプ: INT)
タイトル (名前が示すように、ニュースのタイトル、タイプは TEXT にすることができます)
content (ニュースコンテンツ、オプションのタイプは TEXT)
パス (HTML ファイルのパス、タイプは TEXT にすることができます)

(2) conn.php を作成します
これはデータベースに接続する PHP ファイルです。将来、データベースに接続する必要がある複数のファイルがこのファイルにデータを接続するためのステートメントを個別に配置できます。

(3) ニュース追加用のフォーム add.form を設計します。 簡単なソースコードは次のとおりです。

次はコード スニペットです。「」を <> に置き換えてください:

以下是代码片段,把《》换成<>:

《form method=”post” action=”add.php”> //提交至 add.php
新闻标题:

新闻内容:

《input type=”submit” name=”提交”》
《/form》

《form method=”post” action=”add.php”> //add.php に送信 ニュース タイトル:
ニュースコンテンツ: 《input type=”submit” name=”submit”》 《/form》 テーブル>

(4) HTML テンプレートを作成し、model.htm として保存します。add.php は同じディレクトリに置くことができます。
サンプルソースコード:

以下はコード スニペットです。「」を < に置き換えてください。 > ;:
以下是代码片段,把《》换成<>:

《html>
《body>
此新闻的标题:{title}
此新闻的内容:{content}
《/body>
《/html>
《html>

《本体》

このニュースのタイトル: {title}

このニュースの内容: {content}

以下是代码片段,把《》换成<>:

《?php
require_once(“conn.php”); //引用conn.php,连接数据库
title=_POST[“title”];
content=_POST[“content”]; //获得表单变量

//以下建立一文本文档,其值自动计数
countfile="count.txt";
if(!file_exists(countfile))
{
fopen(countfile,"w"); //如果此文件不存在,则自动建立一个
}
fp=fopen(countfile,"r");
num=fgets(fp,20);
num=num+1; //每次其值自动加一
fclose(fp);
fp=fopen(countfile,"w");
fwrite(fp,num); //更新其值
fclose(fp);

《/本文> 《/html> テーブル> { } 内のコンテンツは置換されるコンテンツです。静的テンプレート全体のデザインは独自のアイデアに基づいて作成できますが、{ } 内に置換されるコンテンツ ({title}、{content など) が含まれている必要があります。かか〜 簡単に言うと、見栄えの良いニューステンプレートをデザインした後、必要な箇所に置き換えるタグ({title}、{content}など)を配置するだけです。


(5) add.phpソースコードの詳細説明

以下はコード スニペットです。「」を < に置き換えてください。 > ;:

《?php require_once(“conn.php”); // conn.php を参照してデータベースに接続します

title=_POST[“タイトル”]

以下是代码片段,把《》换成<>:
sql=”insert into news (title,content,path) values (‘”.title.”’,’”.content.”’,’”.path.”’)”;
query=mysql_query(sql);
content=_POST["content"] //フォーム変数を取得します

//以下は値が自動的にカウントされるテキストドキュメントを作成します

countfile="count.txt"; if(!file_exists(countfile))

{

以下是代码片段,把《》换成<>:
fp=fopen(“model.htm”,”r”) //只读打开模板
str=fread(fp,filesize(“mode.htm”));//读取模板中内容
str=str_replace(“{title}”,title,str);
str=str_replace(“{content}”,content,str);//替换内容
fclose(fp);

handle=fopen(path,”w”); //写入方式打开新闻路径
fwrite(handle,str); //把刚才替换的内容写进生成的HTML文件
fclose(handle);
fopen(countfile,"w"); //このファイルが存在しない場合は、自動的に が作成されます。 } fp=fopen(カウントファイル,"r"); num=fgets(fp,20); num=num+1; //値は毎回自動的に 1 ずつ増加します fclose(fp); fp=fopen(カウントファイル,"w"); fwrite(fp,num); //その値を更新します fclose(fp);
テーブル> //上記の自動的にカウントされた値を使用して、HTML パス ほうずい=”.html”; パス=num.houzui; //このようにして形成されたパスは、1.html、2.html、3.html... のように自動的に拡張されます。ニュースを追加すると、自動的に 1 つ追加されます //以下では SQL ステートメントを使用してテーブル news にデータを追加します 以下はコード スニペットです。「」を < に置き換えてください。 > ;: sql=”ニュース (タイトル,コンテンツ,パス) 値に挿入 (‘”.title.”’,’”.content.”’,’”.path.”’)”; クエリ=mysql_query(sql); テーブル> //以下が重要なポイントです。テンプレート内の {title}、{content} タグをフォーム から取得したデータに置き換えます。
以下はコード スニペットです。「」を < に置き換えてください。 > ;: fp=fopen("model.htm","r") //読み取り専用の開いたテンプレート str=fread(fp,filesize(“mode.htm”));//テンプレートの内容を読み取ります str=str_replace(“{タイトル}”,タイトル,str); str=str_replace(“{content}”,content,str);//コンテンツを置換 fclose(fp); handle=fopen(path,”w”); // ニュースパスを書き込みモードで開きます fwrite(handle,str); // 置換されたコンテンツを生成された HTML ファイルに書き込みます fclose(ハンドル); テーブル>

//仕上げ作業:

以下是代码片段,把《》换成<>:
echo “查看刚才添加的新闻”;

OK、HTML を生成するためのサンプル ソース コード全体はここにあります。重要なのは、置換メソッドを使用することです。
str=str_replace("{置換されたコンテンツ}", 置換されたコンテンツ, str);
したがって、上記のアプローチを要約すると、まずニュース テンプレートを設計し、{ } を使用して置換する必要があるコンテンツをテンプレート内の対応する位置に配置します。次にフォームを設計し、次に最終フォーム ハンドラーに、から取得した変数を配置します。フォーム テンプレート内の対応するコンテンツを置き換えるだけで、毎回異なる HTML が生成されます。HTML のコンテンツを変更する必要がある場合も、変更されたフォームのコンテンツを取得した後、最初にデータベースを更新します。 update ステートメントを実行し、テンプレート内の HTML を再度置き換えます。削除する場合は、まずテーブル内の削除するコンテンツを削除してから、unlink(path) を使用して HTML の物理ファイルを削除します。 。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。