PHP_PHP チュートリアルを使用して静的ページを生成する

WBOY
リリース: 2016-07-13 10:58:24
オリジナル
865 人が閲覧しました

PHP で静的記事システムを生成する方法について多くの友人がさまざまな場所で投稿しているのを見かけました。私も以前そのようなシステムを構築したことがありますので、参考のためにいくつかの意見を共有したいと思います。さて、最初にいくつかの基本概念を確認しましょう。

1. PHP スクリプトと動的ページ。

PHP スクリプトは、埋め込みなどの方法で HTML ファイルと混合したり、クラスや関数のカプセル化などの形式のテンプレートの形式でユーザー要求を処理したりできる、サーバー側のスクリプト プログラムです。いずれにせよ、基本はこれです。クライアントが特定のページをリクエストします -----> WEB サーバーは、指定された対応するスクリプトを処理に導入します -----> スクリプトはサーバーにロードされます ----->サーバーによってスクリプトはブラウザによって解析され、HTML 言語形式が形成されます----> 解析された HTML ステートメントはパッケージの形式でブラウザに返されます。このことから、ページがブラウザに送信された後は PHP が存在せず、HTML ステートメントに変換および解析されたことがわかります。実際、クライアントのリクエストは動的ファイルであり、PHP はそれを対応するページに解析してブラウザに送り返します。このページの処理方法は「動的ページ」と呼ばれます。

2. 静的ページ。

静的ページとは、サーバー側に実際に存在し、HTML、JS、CSS、およびその他のクライアント側スクリプトのみを含むページを指します。扱い方としては。クライアントは特定のページをリクエストします---> WEB サーバーは特定のページを確認してロードします---> WEB サーバーはそのページをパッケージの形式でブラウザに返します。このプロセスから、動的ページを比較して確認できます。動的ページは WEB サーバーの PHP パーサーで解析する必要があり、通常、HTML 言語情報パッケージを形成する前にデータベースに接続してデータベース アクセス操作を実行する必要がありますが、静的ページは解析したり接続したりする必要はありません。データベースに直接送信できるため、サーバーの負荷が大幅に軽減され、サーバーの負荷容量が向上し、ページを開く速度と Web サイト全体を開く速度が大幅に向上します。ただし、その欠点は、リクエストを動的に処理できないことと、ファイルが実際にサーバー上に存在する必要があることです。

3. テンプレートとテンプレート分析。

テンプレートは、コンテンツ HTML ファイルがまだ入力されていないことを意味します。例:

temp.html


{タイトル}

これは { file} ファイルのテンプレットです



PHP処理:

テンプレートテスト.php

$title = "Web ページ教育ネットワーク テスト テンプレート";
$file = "Webjxtest テンプルト、
作者:web@webjx.com";

$fp= fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file}",$file,$content);
$content .= str_replace ("{ title}",$title,$content);

エコー$コンテンツ;
?>



テンプレート解析処理とは、PHPスクリプトを解析して処理した結果(コンテンツ)をテンプレートに埋め込む処理です。通常はテンプレート クラスの助けを借ります。現在、より一般的なテンプレート解析クラスには、phplib、smarty、fastsmarty などが含まれます。テンプレート解析処理の原則は、通常は置換です。また、判定やループなどの処理をテンプレートファイルに入れて解析クラスを使って処理することに慣れているプログラマもいますが、その代表的な応用が単純にループ処理であるブロック概念です。 PHP スクリプトはループの数、ループの方法などを指定し、テンプレート解析クラスがこれらの操作を実装します。

静的ページと動的ページの長所と短所を比較した後、PHP を使用して静的ファイルを生成する方法について説明します。

PHP による静的ページの生成とは、PHP の動的解析と HTML ページの出力を指すのではなく、PHP を使用して HTML ページを作成することを指します。同時に、HTML は書き込み不可能な性質があるため、作成した HTML が変更された場合は、削除して再生成する必要があります。 (もちろん、通常のルールを使用して変更することもできますが、個人的には、削除して再生成するよりも高速であると考えており、メリットはありません。)

仕事に戻る。 PHP のファイル操作関数を使用したことのある PHP ファンは、PHP にファイルを開くファイル操作関数 fopen があることを知っています。ファイルが存在しない場合は、作成してみてください。これは、PHP を使用して HTML ファイルを作成できる理論的基礎です。 HTML ファイルの保存に使用されるフォルダーに書き込み権限 (つまり、権限定義 0777) がある限り、ファイルを作成できます。 (UNIX システムの場合、Win システムは考慮する必要はありません。) 上記の例を例として、最後の文を変更して、test ディレクトリに test.html という名前の静的ファイルを生成するように指定すると、次のようになります。
$title = "Web ページ教育ネットワーク テスト テンプレート";
$file = "Webjxtest テンプルト、
作者:web@webjx.com";

$fp = fopen("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file}",$file,$content);
$content .= str_replace ("{ title}",$title,$content);

// エコー $content;

$ファイル名 = "テスト/test.html";
$handle = fopen ($filename,"w") //ファイルポインタを開いてファイルを作成します
; /*
ファイルが作成され、書き込み可能かどうかを確認してください
*/
if (!is_writable ($ファイル名)){
die ("ファイル: ".$filename." を書き込むことができません。プロパティを確認して、もう一度試してください!");
}
if (!fwrite ($handle,$content)){ //ファイルに情報を書き込みます
die("ファイル生成".$ファイル名."失敗!");
}
fclose ($handle) //ポインタを閉じます

die ("ファイルの作成".$ファイル名."成功!");
?>

実際のアプリケーションにおける一般的な問題の解決策のリファレンス:

1. 記事リストの質問:

データベースにフィールドを作成し、ファイルが生成されるたびに、自動的に生成されたファイル名がデータベースに保存されます。静的ファイルが保存されている指定されたフォルダー内のページをポイントするだけです。 PHP 操作を使用して記事リストを処理し、文字列として保存し、ページの生成時にこの文字列を置き換えます。たとえば、ページ上の記事リストが配置されるテーブルと PHP 処理ファイルにマーク {articletable} を追加します。

$title = "Web ページ教育ネットワーク テスト テンプレート";
$file = "Webjxtest テンプルト、
作者:web@webjx.com";

$fp = fopen("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file}",$file,$content);
$content .= str_replace ("{ title}",$title,$content);

//リスト生成開始
$リスト = '';
$sql = "記事から ID、タイトル、ファイル名を選択";
$query = mysql_query ($sql);
while ($result = mysql_fetch_array($query)){
$list .= ''.$result['title'].'
'

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632014.html技術記事 PHP で静的記事システムを生成する方法について多くの友人がさまざまな場所で投稿しているのを見かけました。私も以前そのようなシステムを構築したことがありますので、参考までにいくつかの意見を共有したいと思います。さて、最初に確認しましょう...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート