検索
ホームページバックエンド開発PHPチュートリアルPHP_PHP チュートリアルを使用した静的ページの生成に関する詳細なチュートリアル

PHP_PHP チュートリアルを使用した静的ページの生成に関する詳細なチュートリアル

Jul 21, 2016 pm 03:22 PM
php1つそして動的チュートリアルはいサーバ比較する生成するプログラム終わり脚本詳しい静的ページ

1. PHP スクリプトと動的ページ。
PHP スクリプトは、埋め込みなどの方法で HTML ファイルと混合したり、クラスや関数のカプセル化などの形式のテンプレートの形式でユーザーのリクエストを処理したりできる、サーバーサイドのスクリプト プログラムです。いずれにせよ、基本はこれです。クライアントが特定のページをリクエストします -----> WEB サーバーは、指定された対応するスクリプトを処理に導入します -----> スクリプトはサーバーにロードされます ----->サーバーによってスクリプトはブラウザによって解析され、HTML 言語形式が形成されます----> 解析された HTML ステートメントはパッケージの形式でブラウザに返されます。このことから、ページがブラウザに送信された後は PHP が存在せず、HTML ステートメントに変換および解析されたことがわかります。実際、クライアントのリクエストは動的ファイルであり、PHP はそれを対応するページに解析してブラウザに送り返します。このページの処理方法は「動的ページ」と呼ばれます。
2 番目の静的ページ。
静的ページとは、サーバー側に実際に存在し、HTML と JS、CSS、その他のクライアント側スクリプトのみを含むページを指します。扱い方としては。クライアントは特定のページをリクエストします---> WEB サーバーは特定のページを確認してロードします---> WEB サーバーはそのページをパッケージの形式でブラウザに返します。このプロセスから、動的ページを比較して確認できます。動的ページは WEB サーバーの PHP パーサーで解析する必要があり、通常、HTML 言語情報パッケージを形成する前にデータベースに接続してデータベース アクセス操作を実行する必要がありますが、静的ページは解析したり接続したりする必要はありません。データベースに直接送信できるため、サーバーの負荷が大幅に軽減され、サーバーの負荷容量が向上し、ページを開く速度と Web サイト全体を開く速度が大幅に向上します。ただし、その欠点は、リクエストを動的に処理できないことと、ファイルが実際にサーバー上に存在する必要があることです。
3 つ、テンプレートとテンプレート分析。
テンプレートにはコンテンツ HTML ファイルが入力されていません。例:
temp.html
コード:

コードをコピーします コードは次のとおりです:


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


PHP 処理:
templetest.php コード:
$title = "TwoMax International Test Template"; Inter test テンプルト ,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$コンテンツ .= str_replace ("{ ファイル }",$file,$content);
$content .= str_replace ("{ タイトル }",$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 = "TwoMax International テスト テンプレート";
$file = "TwoMax Inter テスト テンプレート、
author: Matrix@Two_Max";
$fp = fopen ("temp.html","r " );
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content); title }",$title,$content);
// echo $content;
$filename = "test/test.html";
$handle = fopen ($filename,"w"); // ファイル ポインタを開く ,ファイルを作成します
/*
ファイルが作成され、書き込み可能かどうかを確認します
*/
if (!is_writable ($filename)){
die ("File: ".$filename." は書き込み可能ではありません。プロパティを確認してください。もう一度試してください Try! ");
}
if (!fwrite ($handle,$content)){ //ファイルに情報を書き込みます
die ("Generate file".$filename."Failed!");
}
fclose ( $handle); //ポインタを閉じる
die ("Create file".$filename."Success!");


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

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


コードをコピーします コードは次のとおりです:
$title = "TOP Mai International テスト テンプレート";
$file = "TwoMax Inter テスト テンプレート、
作成者: Matrix@Two_Max";
$fp = fopen ("temp.html","r") ;
$content = fread ($fp, filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content); }",$title,$content);
// リスト生成開始
$list = '';
$sql = "記事から id,title,filename を選択";
$query = mysql_query ($sql);
while ($result = mysql_fetch_array ($query)) {
$list .= ''.$result['title'].''
}
$content .= str_replace ("{articletable }",$list,$content) );
//リストの生成終了
/ / echo $content;
$handle = fopen ($filename,"w");ファイル
/*
ファイルが作成され、使用可能かどうかを確認します。 Write
*/
if (!is_writable ($filename)){
die ("File: ".$filename." は書き込み可能ではありません。プロパティを確認してください。もう一度試してください!");
}
if (!fwrite ($ handle,$content)){ //ファイルに情報を書き込みます
die ("Generate file".$filename."Failed!");
}
fclose ($handle); //ポインタを閉じます
die ("Create file ".$filename."Success! ");



2 つ目は、ページングの問題です。

ページネーションを指定すると、1ページあたり20記事になります。データベース クエリによると、特定のサブチャネル リストには 45 個の記事があります。まず、クエリを通じて次のパラメータを取得します。1、ページの総数、2、ページごとの記事数。 2 番目のステップ、for ($i = 0; $i コード:

Copy code

コードは次のとおりです:
$fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html"); = '20'; $sql = "チャネル='$channelid' の記事から ID を選択します";
$num = mysql_num_rows ($query); num / $onepage) ;
for ($i = 0;$iif ($i == 0){
$indexpath = "index.html"; else {
$ Indexpath = "index_" .$i."html";
}
$start = $i * $onepage;
$sql_for_page = "チャネル='$の記事から名前、ファイル名、タイトルを選択チャンネル ID' 制限 $start ,$onepage";
$query_for_page = mysql_query ($sql_for_page);
while ($result = $query_for_page){
$list .= ''.$title.'';
}
$content = str_replace ("{articletable }",$list,$content);
if (is_file ($indexpath)){
@unlink ($indexpath); // ファイルが既に存在する場合は削除します
}
$handle = fopen ($indexpath,"w "); //ファイルポインタを開き、ファイルを作成します
/*
ファイルが作成され、書き込み可能かどうかを確認します
*/
if (!is_writable ($indexpath)){
echo "File: 「.$indexpath.」は書き込み可能ではありません。プロパティを確認して再試行してください。 "; //echo に変更します
}
if (!fwrite ($handle,$content)){ //ファイルへの情報の書き込み
echo "ファイルの生成".$indexpath に失敗しました! "; //エコーに変更
}
fclose ($handle); //ポインタを閉じる
}
fclose ($fp);
die ("ページングファイルの生成が完了しました。生成が不完全な場合はファイルを確認してください許可システムを再試行してください。");
?>


一般的なアイデアは次のとおりです。その他のデータ生成、データの入出力チェック、ページ分割コンテンツのポインティングなどを必要に応じてページに追加できます。
実際の記事システムの処理プロセスでは、考慮すべき点がまだ多く、動的ページとの違いには注意が必要です。しかし、一般的な考え方はこれであり、他の側面も類推して導き出すことができます。
PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成します
テンプレートにより Web サイトの構造を改善できます。この記事では、PHP 4 の新機能とテンプレート クラスを使用して、多数の静的 HTML ページで構成される Web サイトのページ レイアウトをテンプレートを巧みに使用して制御する方法について説明します。
概要:
======================================
機能とレイアウトを分離する
重複を避けるページ要素の分割
静的ウェブサイト用のテンプレートフレームワーク
=============================================
分割機能とレイアウト
まず、テンプレートを適用する主な 2 つの目的を見てみましょう:
機能 (PHP) とレイアウト (HTML) を分離する
ページ要素の重複を避ける
最初の目的は最も話題になっている目的であり、それが想定されています状況: プログラマーのグループが PHP スクリプトを作成してページのコンテンツを生成し、デザイナーの別のチームが HTML とグラフィックをデザインしてページの最終的な外観を制御します。機能とレイアウトを分離するという基本的な考え方は、これら 2 つのグループの人々が独立したファイルのセットを作成して使用できるようにすることです。プログラマーは、PHP コードのみを含むファイルについてのみ注意する必要があり、PHP コードのみを含むファイルについては気にする必要はありません。ページの外観
; ページ デザイナーは、ページに埋め込まれた PHP コードが壊れることを心配することなく、最も使い慣れたビジュアル エディターを使用してページ レイアウトをデザインできます。
PHP テンプレートに関するチュートリアルをいくつか見たことがあれば、テンプレートがどのように機能するかをすでに理解しているはずです。単純なページ パーツを考えてみましょう。ページの上部はヘッダー、左側はナビゲーション バー、残りはコンテンツ領域です。この種の Web サイトには次のテンプレート ファイルを含めることができます:
コードをコピーします コードは次のとおりです:
; <br><table> <td></td> tr><td>{LEFTNAV}</td> <td>{CONTENT}</td> <br> </table>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP対Python:違いを理解しますPHP対Python:違いを理解しますApr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP:それは死にかけていますか、それとも単に適応していますか?PHP:それは死にかけていますか、それとも単に適応していますか?Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの未来:適応と革新PHPの未来:適応と革新Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?Apr 10, 2025 am 09:39 AM

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?Apr 10, 2025 am 09:38 AM

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。Apr 10, 2025 am 09:37 AM

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか?PHPは、ファイルを安全に処理する方法をどのように処理しますか?Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Apr 10, 2025 am 09:33 AM

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境