ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルを使用して HTML を生成するための前提条件と原則の概要
多くの Web サイトが使用し始めています
著者の Web サイトでは、かつて動的テクノロジである PHP を使用してニュース リリース システムを構築していました。その原理は、PHP のテクノロジを適用して HTML 静的ページを生成することです。関連するプラットフォームは Windows XP Sp2 です。 +php4.32+mysql そこで、ここでこのアプローチの考え方について簡単に説明したいと思います。
この記事は、PHP + MYSQL データベース操作、SQL ステートメント、Web デザインの基本的な知識を持っている友人に適しています。ゼロから学習している友人の場合は、まずしっかりとした基礎を築いてください。ここで下を見る必要はありません。上記の条件を満たしている場合は、おめでとうございます。読み続けてください。ただし、実際に PHP を構築して HTML を生成する前に、次の準備を行う必要があります。
1. PHP で HTML を生成するには、PHP のローカル デバッグ機能が必要です
WINDOWS XP オペレーティング システムでは、Huajun Software Park などのインターネットから PHP+MYSQL+APHCHE サーバー パッケージをダウンロードすることをお勧めします。そこで検索してください。ワンクリックでダウンロードできます。ダウンロード後、デフォルトでインストールできます。これにより、PHP をローカルでテストできるようになり、手動構成での多くの手間が省けます。これは最初のステップにすぎません。
2. PHP が HTML を生成するときは、ニュース リリース システムの機能も考慮する必要があります。
ホームページ上のニュース リリースは、バックグラウンドで更新されることがよくあります。データの追加、編集、削除など。ここでは、Web デザイン ソフトウェアを使用して、必要なバックエンド インターフェイスを構築できます。もちろん、その機能の実装には PHP が使用されます。このステップでは、まずニュースリリースシステムに備えるべき機能を考えることをお勧めします。ここでは、PHP を使用してデータを追加、編集、削除する方法については繰り返しません。これに基づいて静的テクノロジを生成する方法に焦点を当てているからです。
3. PHP による HTML 生成の技術原則。
ははは。フェイはたくさん言いましたが、ついに話す時が来ました。実際、この原則は複雑ではありません。一般的に言えば、PHP のデータ構文を置き換える応用です。 OK、簡単な例について話して、それを段階的に分析してみましょう。あなたは賢いので、それを明確に理解できると思います。ここでは、その方法を詳しく説明します。
(1) MYSQL で新しいデータベースを作成し、database という名前を付けます (カスタマイズ可能)、新しいテーブルを作成して、news という名前を付けます (ニュースリリースなので、覚えやすく、わかりやすい名前を付けてください)カスタマイズ済み)、次のフィールド名を作成します:
id (自動インクリメント、これがキー、タイプ: INT)
title (名前が示すように、ニュース タイトル、タイプは TEXT にすることができます)
content (ニュース コンテンツ、タイプ
path (HTMLファイルのパス、型はTEXTでも可)
(2) conn.phpを作成します
これはデータベースに接続するためのPHPファイルです。この中に別途データを接続するステートメントを入れることができます。ファイル。将来、データベースに接続する必要がある複数のファイルがこのファイルを直接参照するようになります。
(3) ニュースを追加するための add.form フォームを設計します。 簡単なソース コードは次のとおりです:
ニュース タイトル:
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=”text” </span><span class="attribute">size</span><span>=”20”</span><span class="tag">></span></span></li> <li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span> </span></span></li> <li> <span>新闻内容:</span><span class="tag"><</span><span> </span><span class="tag-name">textarea</span><span> <br /></span><span class="attribute">cols</span><span>=”10” </span><span class="attribute">rows</span><span>=”25”</span><span class="tag">></span> </li> <li> <span class="tag"><</span><span> /textarea</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span> </span><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=”submit” </span></li><li><span class="tag"><</span><span> /form</span><span class="tag">></span><span> </span> </li> </ol>
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">form</span><span> </span><span class="attribute">method</span><span>=”post” <br /></span><span class="attribute">action</span><span>=”add.php”</span><span class="tag">></span><span> <br>//提交至 add.php </span></span></li> <li> <span>新闻标题:</span><span class="tag"><</span><span> </span><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=”text” <br /></span><span class="attribute">size</span><span>=”20”</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span>新闻内容:</span><span class="tag"><</span><span> </span><span class="tag-name">textarea</span><span> </span><span class="attribute">cols</span><span>=”10”<br /> </span><span class="attribute">rows</span><span>=”25”</span><span class="tag">></span><span class="tag"><</span><span> /textarea</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"><</span><span> </span><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=”submit” </span></li><li class="alt"><span class="tag"><</span><span> /form</span><span class="tag">></span><span> </span> </li> </ol>
(4) HTML を生成する PHP テンプレートを作成し、モデルとして保存します。 htm と add.php は同じディレクトリに置くことができます。
ソースコード例:
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">html</span><span class="tag">></span><span> </span></span></li> <li> <span class="tag"><</span><span> </span><span class="tag-name">body</span><span class="tag">></span><span> </span> </li> <li class="alt"><span>此新闻的标题:{title} </span></li> <li><span>此新闻的内容:{content} </span></li> <li class="alt"> <span class="tag"><</span><span> /body</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"><</span><span> /html</span><span class="tag">></span><span> </span> </li> </ol>
{ } 中括弧内の内容は置き換えられる内容です。静的テンプレート全体のデザインは独自のアイデアに基づいて作成できますが、{ } 内の置き換えられる内容は次のように含める必要があります。 Above {title}, {content}; Kaka ~ 簡単に言うと、見栄えの良いニュース テンプレートをデザインした後、必要に応じて {title}、{content} などの置換対象のタグを配置するだけです。
(5) add.php ソースコードの詳細説明
<ol class="dp-xml"> <li class="alt"><span><span>require_once(“conn.php”); </span></span></li> <li><span> //引用conn.php,连接数据库 </span></li> <li class="alt"> <span>$</span><span class="attribute">title</span><span>=$_POST[“title”]; </span> </li> <li> <span>$</span><span class="attribute">content</span><span>=$_POST[“content”]; </span> </li> <li class="alt"><span>//获得表单变量 </span></li> <li><span>//以下建立一文本文档,其值自动计数 </span></li> <li class="alt"> <span>$</span><span class="attribute">countfile</span><span>=</span><span class="attribute-value">"count.txt"</span><span>; </span> </li> <li><span>if(!file_exists($countfile)) </span></li> <li class="alt"><span>{ </span></li> <li><span>fopen($countfile,"w"); / </span></li> <li class="alt"><span>/如果此文件不存在,则自动建立一个 </span></li> <li><span>} </span></li> <li class="alt"> <span>$</span><span class="attribute">fp</span><span>=</span><span class="attribute-value">fopen</span><span>($countfile,"r"); </span> </li> <li> <span>$</span><span class="attribute">num</span><span>=</span><span class="attribute-value">fgets</span><span>($fp,20); </span> </li> <li class="alt"> <span>$</span><span class="attribute">num</span><span>=$num+1; //每次其值自动加一 </span> </li> <li><span>fclose($fp); </span></li> <li class="alt"> <span>$</span><span class="attribute">fp</span><span>=</span><span class="attribute-value">fopen</span><span>($countfile,"w"); </span> </li> <li><span>fwrite($fp,$num); //更新其值 </span></li> <li class="alt"><span>fclose($fp); </span></li> <li>< <span> ?php </span> </li> <li class="alt"><span>require_once(“conn.php”); </span></li> <li><span>//引用conn.php,连接数据库 </span></li> <li class="alt"> <span>$</span><span class="attribute">title</span><span>=$_POST[“title”]; </span> </li> <li> <span>$</span><span class="attribute">content</span><span>=$_POST[“content”]; </span> </li> <li class="alt"><span> //获得表单变量 </span></li> <li> <span>$</span><span class="attribute">countfile</span><span>=</span><span class="attribute-value">"count.txt"</span><span>; </span> </li> <li class="alt"><span>if(!file_exists($countfile)) </span></li> <li><span>{ </span></li> <li class="alt"><span>fopen($countfile,"w"); </span></li> <li><span> //如果此文件不存在,则自动建立一个 </span></li> <li class="alt"><span>} </span></li> <li> <span>$</span><span class="attribute">fp</span><span>=</span><span class="attribute-value">fopen</span><span>($countfile,"r"); </span> </li> <li class="alt"> <span>$</span><span class="attribute">num</span><span>=</span><span class="attribute-value">fgets</span><span>($fp,20); </span> </li> <li> <span>$</span><span class="attribute">num</span><span>=$num+1; //每次其值自动加一 </span> </li> <li class="alt"><span>fclose($fp); </span></li> <li> <span>$</span><span class="attribute">fp</span><span>=</span><span class="attribute-value">fopen</span><span>($countfile,"w"); </span> </li> <li class="alt"><span>fwrite($fp,$num); //更新其值 </span></li> <li><span>fclose($fp); </span></li> <li class="alt"> <span>$</span><span class="attribute">houzui</span><span>=”.html”; </span> </li> <li> <span>$</span><span class="attribute">path</span><span>=$num.$houzui; </span> </li> <li class="alt"><span>//这样形成的路径是自动增长的,如1.html,<br>2.html,3.html……….添加一条新闻便自动加上1 </span></li> <li><span>//以下用SQL语句添加数据至表 news </span></li> <li class="alt"> <span>$</span><span class="attribute">query</span><span>=</span><span class="attribute-value">mysql_query</span><span>($sql); </span> </li> <li><span>//以下为关键之处,把从表单获得的数据替换<br>模板中的{title},{content}标记 </span></li> <li class="alt"> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">fread</span><span>($fp,filesize(“mode.htm”)); </span> </li> <li><span>//读取模板中内容 </span></li> <li class="alt"> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">str_replace</span><span>(“{title}”,$title,$str); </span> </li> <li> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">str_replace</span><span>(“{content}”,$content,$str); </span> </li> <li class="alt"><span>//替换内容 </span></li> <li><span>fclose($fp); </span></li> <li class="alt"> <span>$</span><span class="attribute">handle</span><span>=</span><span class="attribute-value">fopen</span><span>($path,”w”); </span> </li> <li><span>//写入方式打开新闻路径 </span></li> <li class="alt"><span>fwrite($handle,$str); </span></li> <li><span>//把刚才替换的内容写进生成的HTML文件 </span></li> <li class="alt"><span>fclose($handle); </span></li> <li> <span>$</span><span class="attribute">fp</span><span>=</span><span class="attribute-value">fopen</span><span>(“model.htm”,”r”) </span> </li> <li class="alt"><span>//只读打开模板 </span></li> <li> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">fread</span><span>($fp,filesize(“mode.htm”)); </span> </li> <li class="alt"><span>//读取模板中内容 </span></li> <li> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">str_replace</span><span>(“{title}”,$title,$str); </span> </li> <li class="alt"> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">str_replace</span><span>(“{content}”,$content,$str); </span> </li> <li><span>//替换内容 </span></li> <li class="alt"><span>fclose($fp); </span></li> <li><span>fwrite($handle,$str); </span></li> <li class="alt"><span>//把刚才替换的内容写进生成的HTML文件 </span></li> <li><span>fclose($handle); </span></li> </ol>
OK、HTML を生成するサンプル ソース コード全体はここにあります。重要なのは、置換メソッドを使用することです。
$str=str_replace("{replaced content}",$replaced content,$str);
つまり、上記の PHP で生成された HTML メソッドを要約すると、まずニュース テンプレートを設計し、置換する必要があるコンテンツを使用します。 { } をテンプレート内の対応する位置に挿入してフォームを設計し、最終的なフォーム ハンドラーでフォームから取得した変数をテンプレート内の対応するコンテンツに置き換えます。これにより、毎回異なる HTML が生成されます
;変更が必要な HTML のコンテンツも同様です。変更したフォームのコンテンツを取得した後、まず update ステートメントでデータベースを更新し、削除する場合は、まずコンテンツを削除します。テーブル内の削除対象を削除し、unlink ($path) を使用して HTML の物理ファイルを削除します。